
.//Obj/W806.elf:     file format elf32-csky-little


Disassembly of section .text:

08010400 <__Vectors>:
 8010400:	00 05 01 08 d0 05 01 08 d0 05 01 08 d0 05 01 08     ................
 8010410:	d0 05 01 08 d0 05 01 08 d0 05 01 08 d0 05 01 08     ................
 8010420:	d0 05 01 08 d0 05 01 08 d0 05 01 08 d0 05 01 08     ................
 8010430:	d0 05 01 08 d0 05 01 08 d0 05 01 08 d0 05 01 08     ................
 8010440:	d0 05 01 08 d0 05 01 08 d0 05 01 08 d0 05 01 08     ................
 8010450:	d0 05 01 08 d0 05 01 08 d0 05 01 08 d0 05 01 08     ................
 8010460:	d0 05 01 08 d0 05 01 08 d0 05 01 08 d0 05 01 08     ................
 8010470:	d0 05 01 08 d0 05 01 08 d0 05 01 08 d0 05 01 08     ................
 8010480:	d0 05 01 08 d0 05 01 08 d0 05 01 08 d0 05 01 08     ................
 8010490:	d0 05 01 08 d0 05 01 08 d0 05 01 08 d0 05 01 08     ................
 80104a0:	d0 05 01 08 d0 05 01 08 d0 05 01 08 d0 05 01 08     ................
 80104b0:	d0 05 01 08 d0 05 01 08 c8 1a 01 08 fc 1a 01 08     ................
 80104c0:	d0 05 01 08 d0 05 01 08 d0 05 01 08 d0 05 01 08     ................
 80104d0:	d0 05 01 08 d0 05 01 08 d0 05 01 08 d0 05 01 08     ................
 80104e0:	d0 05 01 08 94 1a 01 08 d0 05 01 08 d0 05 01 08     ................
 80104f0:	d0 05 01 08 d0 05 01 08 d0 05 01 08 d0 05 01 08     ................

08010500 <Reset_Handler>:
    .align  2
    .globl  Reset_Handler
    .type   Reset_Handler, %function
Reset_Handler:
#ifdef CONFIG_KERNEL_NONE
    lrw     r0, 0xe0000200
 8010500:	1019      	lrw      	r0, 0xe0000200	// 8010564 <__exit+0x4>
#else
    lrw     r0, 0x80000200
    mtcr    r0, psr
#endif
    mtcr    r0, psr
 8010502:	c0006420 	mtcr      	r0, cr<0, 0>

    lrw     r0, g_top_irqstack
 8010506:	1019      	lrw      	r0, 0x2000116c	// 8010568 <__exit+0x8>
    mov     sp, r0
 8010508:	6f83      	mov      	r14, r0

/*
 *	move __Vectors to irq_vectors
 */
    lrw     r1, __Vectors
 801050a:	1039      	lrw      	r1, 0x8010400	// 801056c <__exit+0xc>
    lrw     r2, __vdata_start__
 801050c:	1059      	lrw      	r2, 0x20000000	// 8010570 <__exit+0x10>
    lrw     r3, __vdata_end__
 801050e:	107a      	lrw      	r3, 0x20000100	// 8010574 <__exit+0x14>

    subu    r3, r2
 8010510:	60ca      	subu      	r3, r2
    cmpnei  r3, 0
 8010512:	3b40      	cmpnei      	r3, 0
    bf      .L_loopv0_done
 8010514:	0c08      	bf      	0x8010524	// 8010524 <Reset_Handler+0x24>

.L_loopv0:
    ldw     r0, (r1, 0)
 8010516:	9100      	ld.w      	r0, (r1, 0x0)
    stw     r0, (r2, 0)
 8010518:	b200      	st.w      	r0, (r2, 0x0)
    addi    r1, 4
 801051a:	2103      	addi      	r1, 4
    addi    r2, 4
 801051c:	2203      	addi      	r2, 4
    subi    r3, 4
 801051e:	2b03      	subi      	r3, 4
    cmpnei  r3, 0
 8010520:	3b40      	cmpnei      	r3, 0
    bt      .L_loopv0
 8010522:	0bfa      	bt      	0x8010516	// 8010516 <Reset_Handler+0x16>
 *    __data_start__: VMA of start of the section to copy to
 *    __data_end__: VMA of end of the section to copy to
 *
 *  All addresses must be aligned to 4 bytes boundary.
 */
    lrw     r1, __erodata
 8010524:	1035      	lrw      	r1, 0x8016a4c	// 8010578 <__exit+0x18>
    lrw     r2, __data_start__
 8010526:	1056      	lrw      	r2, 0x20000100	// 801057c <__exit+0x1c>
    lrw     r3, __data_end__
 8010528:	1076      	lrw      	r3, 0x2000016c	// 8010580 <__exit+0x20>

    subu    r3, r2
 801052a:	60ca      	subu      	r3, r2
    cmpnei  r3, 0
 801052c:	3b40      	cmpnei      	r3, 0
    bf      .L_loop0_done
 801052e:	0c08      	bf      	0x801053e	// 801053e <Reset_Handler+0x3e>

.L_loop0:
    ldw     r0, (r1, 0)
 8010530:	9100      	ld.w      	r0, (r1, 0x0)
    stw     r0, (r2, 0)
 8010532:	b200      	st.w      	r0, (r2, 0x0)
    addi    r1, 4
 8010534:	2103      	addi      	r1, 4
    addi    r2, 4
 8010536:	2203      	addi      	r2, 4
    subi    r3, 4
 8010538:	2b03      	subi      	r3, 4
    cmpnei  r3, 0
 801053a:	3b40      	cmpnei      	r3, 0
    bt      .L_loop0
 801053c:	0bfa      	bt      	0x8010530	// 8010530 <Reset_Handler+0x30>
 *    __bss_end__: end of the BSS section.
 *
 *  Both addresses must be aligned to 4 bytes boundary.
 */
 #if 1
    lrw     r1, __bss_start__
 801053e:	1032      	lrw      	r1, 0x2000016c	// 8010584 <__exit+0x24>
    lrw     r2, __bss_end__
 8010540:	1052      	lrw      	r2, 0x2000138c	// 8010588 <__exit+0x28>

    movi    r0, 0
 8010542:	3000      	movi      	r0, 0

    subu    r2, r1
 8010544:	6086      	subu      	r2, r1
    cmpnei  r2, 0
 8010546:	3a40      	cmpnei      	r2, 0
    bf      .L_loop1_done
 8010548:	0c06      	bf      	0x8010554	// 8010554 <Reset_Handler+0x54>

.L_loop1:
    stw     r0, (r1, 0)
 801054a:	b100      	st.w      	r0, (r1, 0x0)
    addi    r1, 4
 801054c:	2103      	addi      	r1, 4
    subi    r2, 4
 801054e:	2a03      	subi      	r2, 4
    cmpnei  r2, 0
 8010550:	3a40      	cmpnei      	r2, 0
    bt      .L_loop1
 8010552:	0bfc      	bt      	0x801054a	// 801054a <Reset_Handler+0x4a>
.L_loop1_done:
#endif

#ifndef __NO_SYSTEM_INIT
    jbsr    SystemInit
 8010554:	e00019a2 	bsr      	0x8013898	// 8013898 <SystemInit>
#endif

#ifndef __NO_BOARD_INIT
    jbsr    board_init
 8010558:	e00019f6 	bsr      	0x8013944	// 8013944 <board_init>
#endif

    jbsr    main
 801055c:	e0000e20 	bsr      	0x801219c	// 801219c <main>

08010560 <__exit>:
    .size   Reset_Handler, . - Reset_Handler

__exit:
    br      __exit
 8010560:	0400      	br      	0x8010560	// 8010560 <__exit>
 8010562:	0000      	.short	0x0000
 8010564:	e0000200 	.long	0xe0000200
 8010568:	2000116c 	.long	0x2000116c
 801056c:	08010400 	.long	0x08010400
 8010570:	20000000 	.long	0x20000000
 8010574:	20000100 	.long	0x20000100
 8010578:	08016a4c 	.long	0x08016a4c
 801057c:	20000100 	.long	0x20000100
 8010580:	2000016c 	.long	0x2000016c
 8010584:	2000016c 	.long	0x2000016c
 8010588:	2000138c 	.long	0x2000138c

0801058c <trap>:
 * default exception handler
 ******************************************************************************/
    .global trap
    .type   trap, %function
trap:
    psrset  ee
 801058c:	c1007420 	psrset      	ee

    subi    sp, 4
 8010590:	1421      	subi      	r14, r14, 4
    stw     r13, (sp)
 8010592:	ddae2000 	st.w      	r13, (r14, 0x0)
    addi    sp, 4
 8010596:	1401      	addi      	r14, r14, 4

    lrw     r13, g_trap_sp
 8010598:	ea8d000f 	lrw      	r13, 0x2000136c	// 80105d4 <ADC_IRQHandler+0x4>
    stw     sp, (r13)
 801059c:	ddcd2000 	st.w      	r14, (r13, 0x0)

    lrw     sp, g_top_trapstack
 80105a0:	ea8e000e 	lrw      	r14, 0x2000136c	// 80105d8 <ADC_IRQHandler+0x8>

    subi    sp, 72
 80105a4:	1432      	subi      	r14, r14, 72
    stm     r0-r12, (sp)
 80105a6:	d40e1c2c 	stm      	r0-r12, (r14)

    lrw     r0, g_trap_sp
 80105aa:	100b      	lrw      	r0, 0x2000136c	// 80105d4 <ADC_IRQHandler+0x4>
    ldw     r0, (r0)
 80105ac:	9000      	ld.w      	r0, (r0, 0x0)

    stw     r0, (sp, 56) /* save r14 */
 80105ae:	b80e      	st.w      	r0, (r14, 0x38)

    subi    r0, 4
 80105b0:	2803      	subi      	r0, 4
    ldw     r13, (r0)
 80105b2:	d9a02000 	ld.w      	r13, (r0, 0x0)
    stw     r13, (sp, 52)
 80105b6:	ddae200d 	st.w      	r13, (r14, 0x34)

    stw     r15, (sp, 60)
 80105ba:	ddee200f 	st.w      	r15, (r14, 0x3c)
    mfcr    r0, epsr
 80105be:	c0026020 	mfcr      	r0, cr<2, 0>
    stw     r0, (sp, 64)
 80105c2:	b810      	st.w      	r0, (r14, 0x40)
    mfcr    r0, epc
 80105c4:	c0046020 	mfcr      	r0, cr<4, 0>
    stw     r0, (sp, 68)
 80105c8:	b811      	st.w      	r0, (r14, 0x44)

    mov     r0, sp
 80105ca:	6c3b      	mov      	r0, r14

    jbsr    trap_c
 80105cc:	e000197e 	bsr      	0x80138c8	// 80138c8 <trap_c>

080105d0 <ADC_IRQHandler>:

    .align  2
    .weak   Default_Handler
    .type   Default_Handler, %function
Default_Handler:
    br      trap
 80105d0:	07de      	br      	0x801058c	// 801058c <trap>
 80105d2:	0000      	.short	0x0000
 80105d4:	2000136c 	.long	0x2000136c
 80105d8:	2000136c 	.long	0x2000136c

080105dc <__fixunsdfsi>:
 80105dc:	14d2      	push      	r4-r5, r15
 80105de:	3200      	movi      	r2, 0
 80105e0:	ea2341e0 	movih      	r3, 16864
 80105e4:	6d03      	mov      	r4, r0
 80105e6:	6d47      	mov      	r5, r1
 80105e8:	e00006a2 	bsr      	0x801132c	// 801132c <__gedf2>
 80105ec:	e9a00007 	bhsz      	r0, 0x80105fa	// 80105fa <__fixunsdfsi+0x1e>
 80105f0:	6c13      	mov      	r0, r4
 80105f2:	6c57      	mov      	r1, r5
 80105f4:	e000070c 	bsr      	0x801140c	// 801140c <__fixdfsi>
 80105f8:	1492      	pop      	r4-r5, r15
 80105fa:	3200      	movi      	r2, 0
 80105fc:	ea2341e0 	movih      	r3, 16864
 8010600:	6c13      	mov      	r0, r4
 8010602:	6c57      	mov      	r1, r5
 8010604:	e00004ae 	bsr      	0x8010f60	// 8010f60 <__subdf3>
 8010608:	e0000702 	bsr      	0x801140c	// 801140c <__fixdfsi>
 801060c:	ea238000 	movih      	r3, 32768
 8010610:	600c      	addu      	r0, r3
 8010612:	1492      	pop      	r4-r5, r15

08010614 <__udivdi3>:
 8010614:	14c5      	push      	r4-r8
 8010616:	6f4b      	mov      	r13, r2
 8010618:	6d4f      	mov      	r5, r3
 801061a:	6d03      	mov      	r4, r0
 801061c:	6f07      	mov      	r12, r1
 801061e:	e9230054 	bnez      	r3, 0x80106c6	// 80106c6 <__udivdi3+0xb2>
 8010622:	6484      	cmphs      	r1, r2
 8010624:	0870      	bt      	0x8010704	// 8010704 <__udivdi3+0xf0>
 8010626:	eb02ffff 	cmphsi      	r2, 65536
 801062a:	0cc4      	bf      	0x80107b2	// 80107b2 <__udivdi3+0x19e>
 801062c:	c6e05023 	bmaski      	r3, 24
 8010630:	648c      	cmphs      	r3, r2
 8010632:	3518      	movi      	r5, 24
 8010634:	3310      	movi      	r3, 16
 8010636:	c4a30c40 	inct      	r5, r3, 0
 801063a:	01dc      	lrw      	r6, 0x80161b4	// 8010944 <__udivdi3+0x330>
 801063c:	c4a24043 	lsr      	r3, r2, r5
 8010640:	d0660023 	ldr.b      	r3, (r6, r3 << 0)
 8010644:	614c      	addu      	r5, r3
 8010646:	3320      	movi      	r3, 32
 8010648:	60d6      	subu      	r3, r5
 801064a:	e903000c 	bez      	r3, 0x8010662	// 8010662 <__udivdi3+0x4e>
 801064e:	c462402d 	lsl      	r13, r2, r3
 8010652:	c4a04045 	lsr      	r5, r0, r5
 8010656:	c4614022 	lsl      	r2, r1, r3
 801065a:	c445242c 	or      	r12, r5, r2
 801065e:	c4604024 	lsl      	r4, r0, r3
 8010662:	c60d4841 	lsri      	r1, r13, 16
 8010666:	c42c8022 	divu      	r2, r12, r1
 801066a:	c4228423 	mult      	r3, r2, r1
 801066e:	630e      	subu      	r12, r3
 8010670:	c60c4823 	lsli      	r3, r12, 16
 8010674:	c40d55e5 	zext      	r5, r13, 15, 0
 8010678:	c604484c 	lsri      	r12, r4, 16
 801067c:	c4458420 	mult      	r0, r5, r2
 8010680:	6f0c      	or      	r12, r3
 8010682:	6430      	cmphs      	r12, r0
 8010684:	0808      	bt      	0x8010694	// 8010694 <__udivdi3+0x80>
 8010686:	6334      	addu      	r12, r13
 8010688:	6770      	cmphs      	r12, r13
 801068a:	5a63      	subi      	r3, r2, 1
 801068c:	0c03      	bf      	0x8010692	// 8010692 <__udivdi3+0x7e>
 801068e:	6430      	cmphs      	r12, r0
 8010690:	0d56      	bf      	0x801093c	// 801093c <__udivdi3+0x328>
 8010692:	6c8f      	mov      	r2, r3
 8010694:	6302      	subu      	r12, r0
 8010696:	c42c8020 	divu      	r0, r12, r1
 801069a:	7c40      	mult      	r1, r0
 801069c:	6306      	subu      	r12, r1
 801069e:	c60c482c 	lsli      	r12, r12, 16
 80106a2:	c40455e4 	zext      	r4, r4, 15, 0
 80106a6:	7d40      	mult      	r5, r0
 80106a8:	6d30      	or      	r4, r12
 80106aa:	6550      	cmphs      	r4, r5
 80106ac:	6c43      	mov      	r1, r0
 80106ae:	0808      	bt      	0x80106be	// 80106be <__udivdi3+0xaa>
 80106b0:	6134      	addu      	r4, r13
 80106b2:	6750      	cmphs      	r4, r13
 80106b4:	5863      	subi      	r3, r0, 1
 80106b6:	0d21      	bf      	0x80108f8	// 80108f8 <__udivdi3+0x2e4>
 80106b8:	6550      	cmphs      	r4, r5
 80106ba:	091f      	bt      	0x80108f8	// 80108f8 <__udivdi3+0x2e4>
 80106bc:	2901      	subi      	r1, 2
 80106be:	4210      	lsli      	r0, r2, 16
 80106c0:	6c04      	or      	r0, r1
 80106c2:	3100      	movi      	r1, 0
 80106c4:	1485      	pop      	r4-r8
 80106c6:	64c4      	cmphs      	r1, r3
 80106c8:	0c6b      	bf      	0x801079e	// 801079e <__udivdi3+0x18a>
 80106ca:	eb03ffff 	cmphsi      	r3, 65536
 80106ce:	0c6b      	bf      	0x80107a4	// 80107a4 <__udivdi3+0x190>
 80106d0:	c6e0502c 	bmaski      	r12, 24
 80106d4:	64f0      	cmphs      	r12, r3
 80106d6:	ea0d0018 	movi      	r13, 24
 80106da:	ea0c0010 	movi      	r12, 16
 80106de:	c58d0c20 	incf      	r12, r13, 0
 80106e2:	0386      	lrw      	r4, 0x80161b4	// 8010944 <__udivdi3+0x330>
 80106e4:	c583404d 	lsr      	r13, r3, r12
 80106e8:	d1a4002d 	ldr.b      	r13, (r4, r13 << 0)
 80106ec:	6370      	addu      	r13, r12
 80106ee:	3520      	movi      	r5, 32
 80106f0:	6176      	subu      	r5, r13
 80106f2:	e925006c 	bnez      	r5, 0x80107ca	// 80107ca <__udivdi3+0x1b6>
 80106f6:	644c      	cmphs      	r3, r1
 80106f8:	0d0d      	bf      	0x8010912	// 8010912 <__udivdi3+0x2fe>
 80106fa:	6480      	cmphs      	r0, r2
 80106fc:	c4000500 	mvc      	r0
 8010700:	6c57      	mov      	r1, r5
 8010702:	1485      	pop      	r4-r8
 8010704:	e9220006 	bnez      	r2, 0x8010710	// 8010710 <__udivdi3+0xfc>
 8010708:	ea0d0001 	movi      	r13, 1
 801070c:	c44d802d 	divu      	r13, r13, r2
 8010710:	eb0dffff 	cmphsi      	r13, 65536
 8010714:	0c55      	bf      	0x80107be	// 80107be <__udivdi3+0x1aa>
 8010716:	c6e05023 	bmaski      	r3, 24
 801071a:	674c      	cmphs      	r3, r13
 801071c:	3518      	movi      	r5, 24
 801071e:	3310      	movi      	r3, 16
 8010720:	c4a30c40 	inct      	r5, r3, 0
 8010724:	0357      	lrw      	r2, 0x80161b4	// 8010944 <__udivdi3+0x330>
 8010726:	c4ad4043 	lsr      	r3, r13, r5
 801072a:	d0620023 	ldr.b      	r3, (r2, r3 << 0)
 801072e:	614c      	addu      	r5, r3
 8010730:	3620      	movi      	r6, 32
 8010732:	6196      	subu      	r6, r5
 8010734:	e926009f 	bnez      	r6, 0x8010872	// 8010872 <__udivdi3+0x25e>
 8010738:	c5a10082 	subu      	r2, r1, r13
 801073c:	c60d4846 	lsri      	r6, r13, 16
 8010740:	c40d55e5 	zext      	r5, r13, 15, 0
 8010744:	3101      	movi      	r1, 1
 8010746:	c4c2802c 	divu      	r12, r2, r6
 801074a:	c4cc8423 	mult      	r3, r12, r6
 801074e:	608e      	subu      	r2, r3
 8010750:	4250      	lsli      	r2, r2, 16
 8010752:	4c70      	lsri      	r3, r4, 16
 8010754:	c4ac8420 	mult      	r0, r12, r5
 8010758:	6cc8      	or      	r3, r2
 801075a:	640c      	cmphs      	r3, r0
 801075c:	0809      	bt      	0x801076e	// 801076e <__udivdi3+0x15a>
 801075e:	60f4      	addu      	r3, r13
 8010760:	674c      	cmphs      	r3, r13
 8010762:	e44c1000 	subi      	r2, r12, 1
 8010766:	0c03      	bf      	0x801076c	// 801076c <__udivdi3+0x158>
 8010768:	640c      	cmphs      	r3, r0
 801076a:	0ce5      	bf      	0x8010934	// 8010934 <__udivdi3+0x320>
 801076c:	6f0b      	mov      	r12, r2
 801076e:	60c2      	subu      	r3, r0
 8010770:	c4c38020 	divu      	r0, r3, r6
 8010774:	7d80      	mult      	r6, r0
 8010776:	60da      	subu      	r3, r6
 8010778:	4370      	lsli      	r3, r3, 16
 801077a:	c40455e4 	zext      	r4, r4, 15, 0
 801077e:	7d40      	mult      	r5, r0
 8010780:	6cd0      	or      	r3, r4
 8010782:	654c      	cmphs      	r3, r5
 8010784:	6c83      	mov      	r2, r0
 8010786:	0808      	bt      	0x8010796	// 8010796 <__udivdi3+0x182>
 8010788:	60f4      	addu      	r3, r13
 801078a:	674c      	cmphs      	r3, r13
 801078c:	2800      	subi      	r0, 1
 801078e:	0cb3      	bf      	0x80108f4	// 80108f4 <__udivdi3+0x2e0>
 8010790:	654c      	cmphs      	r3, r5
 8010792:	08b1      	bt      	0x80108f4	// 80108f4 <__udivdi3+0x2e0>
 8010794:	2a01      	subi      	r2, 2
 8010796:	c60c4820 	lsli      	r0, r12, 16
 801079a:	6c08      	or      	r0, r2
 801079c:	1485      	pop      	r4-r8
 801079e:	3100      	movi      	r1, 0
 80107a0:	6c07      	mov      	r0, r1
 80107a2:	1485      	pop      	r4-r8
 80107a4:	eb0300ff 	cmphsi      	r3, 256
 80107a8:	c400050d 	mvc      	r13
 80107ac:	c46d482c 	lsli      	r12, r13, 3
 80107b0:	0799      	br      	0x80106e2	// 80106e2 <__udivdi3+0xce>
 80107b2:	eb0200ff 	cmphsi      	r2, 256
 80107b6:	3308      	movi      	r3, 8
 80107b8:	c4a30c40 	inct      	r5, r3, 0
 80107bc:	073f      	br      	0x801063a	// 801063a <__udivdi3+0x26>
 80107be:	eb0d00ff 	cmphsi      	r13, 256
 80107c2:	3308      	movi      	r3, 8
 80107c4:	c4a30c40 	inct      	r5, r3, 0
 80107c8:	07ae      	br      	0x8010724	// 8010724 <__udivdi3+0x110>
 80107ca:	c5a24046 	lsr      	r6, r2, r13
 80107ce:	70d4      	lsl      	r3, r5
 80107d0:	6d8c      	or      	r6, r3
 80107d2:	c5a14044 	lsr      	r4, r1, r13
 80107d6:	4ef0      	lsri      	r7, r6, 16
 80107d8:	c4e48023 	divu      	r3, r4, r7
 80107dc:	c4a1402c 	lsl      	r12, r1, r5
 80107e0:	c5a04041 	lsr      	r1, r0, r13
 80107e4:	c4e3842d 	mult      	r13, r3, r7
 80107e8:	6c70      	or      	r1, r12
 80107ea:	6136      	subu      	r4, r13
 80107ec:	c40655ec 	zext      	r12, r6, 15, 0
 80107f0:	4490      	lsli      	r4, r4, 16
 80107f2:	c601484d 	lsri      	r13, r1, 16
 80107f6:	c46c8428 	mult      	r8, r12, r3
 80107fa:	6f50      	or      	r13, r4
 80107fc:	6634      	cmphs      	r13, r8
 80107fe:	7094      	lsl      	r2, r5
 8010800:	0806      	bt      	0x801080c	// 801080c <__udivdi3+0x1f8>
 8010802:	6358      	addu      	r13, r6
 8010804:	65b4      	cmphs      	r13, r6
 8010806:	5b83      	subi      	r4, r3, 1
 8010808:	088d      	bt      	0x8010922	// 8010922 <__udivdi3+0x30e>
 801080a:	6cd3      	mov      	r3, r4
 801080c:	6362      	subu      	r13, r8
 801080e:	c4ed8024 	divu      	r4, r13, r7
 8010812:	7dd0      	mult      	r7, r4
 8010814:	635e      	subu      	r13, r7
 8010816:	c60d482d 	lsli      	r13, r13, 16
 801081a:	c48c8427 	mult      	r7, r12, r4
 801081e:	c40155ec 	zext      	r12, r1, 15, 0
 8010822:	6f34      	or      	r12, r13
 8010824:	65f0      	cmphs      	r12, r7
 8010826:	0806      	bt      	0x8010832	// 8010832 <__udivdi3+0x21e>
 8010828:	6318      	addu      	r12, r6
 801082a:	65b0      	cmphs      	r12, r6
 801082c:	5c23      	subi      	r1, r4, 1
 801082e:	0875      	bt      	0x8010918	// 8010918 <__udivdi3+0x304>
 8010830:	6d07      	mov      	r4, r1
 8010832:	4370      	lsli      	r3, r3, 16
 8010834:	6cd0      	or      	r3, r4
 8010836:	c40355e1 	zext      	r1, r3, 15, 0
 801083a:	c40255e4 	zext      	r4, r2, 15, 0
 801083e:	c603484d 	lsri      	r13, r3, 16
 8010842:	4a50      	lsri      	r2, r2, 16
 8010844:	c4818426 	mult      	r6, r1, r4
 8010848:	7d34      	mult      	r4, r13
 801084a:	7c48      	mult      	r1, r2
 801084c:	7f48      	mult      	r13, r2
 801084e:	6050      	addu      	r1, r4
 8010850:	4e50      	lsri      	r2, r6, 16
 8010852:	6084      	addu      	r2, r1
 8010854:	6508      	cmphs      	r2, r4
 8010856:	631e      	subu      	r12, r7
 8010858:	0804      	bt      	0x8010860	// 8010860 <__udivdi3+0x24c>
 801085a:	ea210001 	movih      	r1, 1
 801085e:	6344      	addu      	r13, r1
 8010860:	4a30      	lsri      	r1, r2, 16
 8010862:	6344      	addu      	r13, r1
 8010864:	6770      	cmphs      	r12, r13
 8010866:	0c53      	bf      	0x801090c	// 801090c <__udivdi3+0x2f8>
 8010868:	6772      	cmpne      	r12, r13
 801086a:	0c49      	bf      	0x80108fc	// 80108fc <__udivdi3+0x2e8>
 801086c:	6c0f      	mov      	r0, r3
 801086e:	3100      	movi      	r1, 0
 8010870:	1485      	pop      	r4-r8
 8010872:	7358      	lsl      	r13, r6
 8010874:	c4a1404c 	lsr      	r12, r1, r5
 8010878:	c4c14022 	lsl      	r2, r1, r6
 801087c:	c4c04024 	lsl      	r4, r0, r6
 8010880:	c60d4846 	lsri      	r6, r13, 16
 8010884:	c4a04045 	lsr      	r5, r0, r5
 8010888:	c4cc8020 	divu      	r0, r12, r6
 801088c:	c4c08421 	mult      	r1, r0, r6
 8010890:	c4452423 	or      	r3, r5, r2
 8010894:	6306      	subu      	r12, r1
 8010896:	c40d55e5 	zext      	r5, r13, 15, 0
 801089a:	c60c482c 	lsli      	r12, r12, 16
 801089e:	4b30      	lsri      	r1, r3, 16
 80108a0:	c4058422 	mult      	r2, r5, r0
 80108a4:	6c70      	or      	r1, r12
 80108a6:	6484      	cmphs      	r1, r2
 80108a8:	080a      	bt      	0x80108bc	// 80108bc <__udivdi3+0x2a8>
 80108aa:	6074      	addu      	r1, r13
 80108ac:	6744      	cmphs      	r1, r13
 80108ae:	e5801000 	subi      	r12, r0, 1
 80108b2:	0c3f      	bf      	0x8010930	// 8010930 <__udivdi3+0x31c>
 80108b4:	6484      	cmphs      	r1, r2
 80108b6:	083d      	bt      	0x8010930	// 8010930 <__udivdi3+0x31c>
 80108b8:	2801      	subi      	r0, 2
 80108ba:	6074      	addu      	r1, r13
 80108bc:	604a      	subu      	r1, r2
 80108be:	c4c1802c 	divu      	r12, r1, r6
 80108c2:	c4cc8422 	mult      	r2, r12, r6
 80108c6:	5949      	subu      	r2, r1, r2
 80108c8:	4250      	lsli      	r2, r2, 16
 80108ca:	c40355e3 	zext      	r3, r3, 15, 0
 80108ce:	c5858421 	mult      	r1, r5, r12
 80108d2:	6c8c      	or      	r2, r3
 80108d4:	6448      	cmphs      	r2, r1
 80108d6:	080b      	bt      	0x80108ec	// 80108ec <__udivdi3+0x2d8>
 80108d8:	60b4      	addu      	r2, r13
 80108da:	6748      	cmphs      	r2, r13
 80108dc:	e46c1000 	subi      	r3, r12, 1
 80108e0:	0c26      	bf      	0x801092c	// 801092c <__udivdi3+0x318>
 80108e2:	6448      	cmphs      	r2, r1
 80108e4:	0824      	bt      	0x801092c	// 801092c <__udivdi3+0x318>
 80108e6:	e58c1001 	subi      	r12, r12, 2
 80108ea:	60b4      	addu      	r2, r13
 80108ec:	6086      	subu      	r2, r1
 80108ee:	4030      	lsli      	r1, r0, 16
 80108f0:	6c70      	or      	r1, r12
 80108f2:	072a      	br      	0x8010746	// 8010746 <__udivdi3+0x132>
 80108f4:	6c83      	mov      	r2, r0
 80108f6:	0750      	br      	0x8010796	// 8010796 <__udivdi3+0x182>
 80108f8:	6c4f      	mov      	r1, r3
 80108fa:	06e2      	br      	0x80106be	// 80106be <__udivdi3+0xaa>
 80108fc:	4250      	lsli      	r2, r2, 16
 80108fe:	c40655e6 	zext      	r6, r6, 15, 0
 8010902:	c4a04021 	lsl      	r1, r0, r5
 8010906:	6098      	addu      	r2, r6
 8010908:	6484      	cmphs      	r1, r2
 801090a:	0bb1      	bt      	0x801086c	// 801086c <__udivdi3+0x258>
 801090c:	5b03      	subi      	r0, r3, 1
 801090e:	3100      	movi      	r1, 0
 8010910:	1485      	pop      	r4-r8
 8010912:	6c57      	mov      	r1, r5
 8010914:	3001      	movi      	r0, 1
 8010916:	1485      	pop      	r4-r8
 8010918:	65f0      	cmphs      	r12, r7
 801091a:	0b8b      	bt      	0x8010830	// 8010830 <__udivdi3+0x21c>
 801091c:	2c01      	subi      	r4, 2
 801091e:	6318      	addu      	r12, r6
 8010920:	0789      	br      	0x8010832	// 8010832 <__udivdi3+0x21e>
 8010922:	6634      	cmphs      	r13, r8
 8010924:	0b73      	bt      	0x801080a	// 801080a <__udivdi3+0x1f6>
 8010926:	2b01      	subi      	r3, 2
 8010928:	6358      	addu      	r13, r6
 801092a:	0771      	br      	0x801080c	// 801080c <__udivdi3+0x1f8>
 801092c:	6f0f      	mov      	r12, r3
 801092e:	07df      	br      	0x80108ec	// 80108ec <__udivdi3+0x2d8>
 8010930:	6c33      	mov      	r0, r12
 8010932:	07c5      	br      	0x80108bc	// 80108bc <__udivdi3+0x2a8>
 8010934:	e58c1001 	subi      	r12, r12, 2
 8010938:	60f4      	addu      	r3, r13
 801093a:	071a      	br      	0x801076e	// 801076e <__udivdi3+0x15a>
 801093c:	2a01      	subi      	r2, 2
 801093e:	6334      	addu      	r12, r13
 8010940:	06aa      	br      	0x8010694	// 8010694 <__udivdi3+0x80>
 8010942:	0000      	.short	0x0000
 8010944:	080161b4 	.long	0x080161b4

08010948 <__umoddi3>:
 8010948:	14c6      	push      	r4-r9
 801094a:	6d4b      	mov      	r5, r2
 801094c:	6f4f      	mov      	r13, r3
 801094e:	6d83      	mov      	r6, r0
 8010950:	6f07      	mov      	r12, r1
 8010952:	e923004a 	bnez      	r3, 0x80109e6	// 80109e6 <__umoddi3+0x9e>
 8010956:	6484      	cmphs      	r1, r2
 8010958:	086b      	bt      	0x8010a2e	// 8010a2e <__umoddi3+0xe6>
 801095a:	eb02ffff 	cmphsi      	r2, 65536
 801095e:	0cc0      	bf      	0x8010ade	// 8010ade <__umoddi3+0x196>
 8010960:	c6e05023 	bmaski      	r3, 24
 8010964:	648c      	cmphs      	r3, r2
 8010966:	ea0d0018 	movi      	r13, 24
 801096a:	3310      	movi      	r3, 16
 801096c:	c5a30c40 	inct      	r13, r3, 0
 8010970:	0281      	lrw      	r4, 0x80161b4	// 8010c68 <__umoddi3+0x320>
 8010972:	c5a24043 	lsr      	r3, r2, r13
 8010976:	d0640023 	ldr.b      	r3, (r4, r3 << 0)
 801097a:	634c      	addu      	r13, r3
 801097c:	3420      	movi      	r4, 32
 801097e:	6136      	subu      	r4, r13
 8010980:	e904000b 	bez      	r4, 0x8010996	// 8010996 <__umoddi3+0x4e>
 8010984:	7050      	lsl      	r1, r4
 8010986:	c5a0404d 	lsr      	r13, r0, r13
 801098a:	c4824025 	lsl      	r5, r2, r4
 801098e:	c42d242c 	or      	r12, r13, r1
 8010992:	c4804026 	lsl      	r6, r0, r4
 8010996:	c605484d 	lsri      	r13, r5, 16
 801099a:	c5ac8021 	divu      	r1, r12, r13
 801099e:	c5a18422 	mult      	r2, r1, r13
 80109a2:	c40555e0 	zext      	r0, r5, 15, 0
 80109a6:	c44c0082 	subu      	r2, r12, r2
 80109aa:	c4208423 	mult      	r3, r0, r1
 80109ae:	4250      	lsli      	r2, r2, 16
 80109b0:	4e30      	lsri      	r1, r6, 16
 80109b2:	6c48      	or      	r1, r2
 80109b4:	64c4      	cmphs      	r1, r3
 80109b6:	0808      	bt      	0x80109c6	// 80109c6 <__umoddi3+0x7e>
 80109b8:	6054      	addu      	r1, r5
 80109ba:	6544      	cmphs      	r1, r5
 80109bc:	0c05      	bf      	0x80109c6	// 80109c6 <__umoddi3+0x7e>
 80109be:	5954      	addu      	r2, r1, r5
 80109c0:	64c4      	cmphs      	r1, r3
 80109c2:	c4220c20 	incf      	r1, r2, 0
 80109c6:	604e      	subu      	r1, r3
 80109c8:	c5a18023 	divu      	r3, r1, r13
 80109cc:	7f4c      	mult      	r13, r3
 80109ce:	6076      	subu      	r1, r13
 80109d0:	7c0c      	mult      	r0, r3
 80109d2:	4130      	lsli      	r1, r1, 16
 80109d4:	c40655e3 	zext      	r3, r6, 15, 0
 80109d8:	6cc4      	or      	r3, r1
 80109da:	640c      	cmphs      	r3, r0
 80109dc:	0c69      	bf      	0x8010aae	// 8010aae <__umoddi3+0x166>
 80109de:	5b01      	subu      	r0, r3, r0
 80109e0:	7011      	lsr      	r0, r4
 80109e2:	3100      	movi      	r1, 0
 80109e4:	1486      	pop      	r4-r9
 80109e6:	64c4      	cmphs      	r1, r3
 80109e8:	0ffe      	bf      	0x80109e4	// 80109e4 <__umoddi3+0x9c>
 80109ea:	eb03ffff 	cmphsi      	r3, 65536
 80109ee:	0c6b      	bf      	0x8010ac4	// 8010ac4 <__umoddi3+0x17c>
 80109f0:	c6e0502d 	bmaski      	r13, 24
 80109f4:	64f4      	cmphs      	r13, r3
 80109f6:	3518      	movi      	r5, 24
 80109f8:	ea0d0010 	movi      	r13, 16
 80109fc:	c5a50c20 	incf      	r13, r5, 0
 8010a00:	03a5      	lrw      	r5, 0x80161b4	// 8010c68 <__umoddi3+0x320>
 8010a02:	c5a34044 	lsr      	r4, r3, r13
 8010a06:	d0850025 	ldr.b      	r5, (r5, r4 << 0)
 8010a0a:	6174      	addu      	r5, r13
 8010a0c:	3420      	movi      	r4, 32
 8010a0e:	6116      	subu      	r4, r5
 8010a10:	e924006d 	bnez      	r4, 0x8010aea	// 8010aea <__umoddi3+0x1a2>
 8010a14:	644c      	cmphs      	r3, r1
 8010a16:	0c03      	bf      	0x8010a1c	// 8010a1c <__umoddi3+0xd4>
 8010a18:	6480      	cmphs      	r0, r2
 8010a1a:	0d20      	bf      	0x8010c5a	// 8010c5a <__umoddi3+0x312>
 8010a1c:	5889      	subu      	r4, r0, r2
 8010a1e:	6500      	cmphs      	r0, r4
 8010a20:	c461008c 	subu      	r12, r1, r3
 8010a24:	6443      	mvcv      	r1
 8010a26:	6306      	subu      	r12, r1
 8010a28:	6c13      	mov      	r0, r4
 8010a2a:	6c73      	mov      	r1, r12
 8010a2c:	1486      	pop      	r4-r9
 8010a2e:	e9220005 	bnez      	r2, 0x8010a38	// 8010a38 <__umoddi3+0xf0>
 8010a32:	3501      	movi      	r5, 1
 8010a34:	c4458025 	divu      	r5, r5, r2
 8010a38:	eb05ffff 	cmphsi      	r5, 65536
 8010a3c:	0c4b      	bf      	0x8010ad2	// 8010ad2 <__umoddi3+0x18a>
 8010a3e:	c6e05023 	bmaski      	r3, 24
 8010a42:	654c      	cmphs      	r3, r5
 8010a44:	ea0d0018 	movi      	r13, 24
 8010a48:	3310      	movi      	r3, 16
 8010a4a:	c5a30c40 	inct      	r13, r3, 0
 8010a4e:	0358      	lrw      	r2, 0x80161b4	// 8010c68 <__umoddi3+0x320>
 8010a50:	c5a54043 	lsr      	r3, r5, r13
 8010a54:	d0620023 	ldr.b      	r3, (r2, r3 << 0)
 8010a58:	634c      	addu      	r13, r3
 8010a5a:	3420      	movi      	r4, 32
 8010a5c:	6136      	subu      	r4, r13
 8010a5e:	e92400af 	bnez      	r4, 0x8010bbc	// 8010bbc <__umoddi3+0x274>
 8010a62:	c4a1008c 	subu      	r12, r1, r5
 8010a66:	4df0      	lsri      	r7, r5, 16
 8010a68:	c40555e2 	zext      	r2, r5, 15, 0
 8010a6c:	c4ec8021 	divu      	r1, r12, r7
 8010a70:	c4e18423 	mult      	r3, r1, r7
 8010a74:	630e      	subu      	r12, r3
 8010a76:	c60c482c 	lsli      	r12, r12, 16
 8010a7a:	c4418423 	mult      	r3, r1, r2
 8010a7e:	4e30      	lsri      	r1, r6, 16
 8010a80:	6c70      	or      	r1, r12
 8010a82:	64c4      	cmphs      	r1, r3
 8010a84:	0808      	bt      	0x8010a94	// 8010a94 <__umoddi3+0x14c>
 8010a86:	6054      	addu      	r1, r5
 8010a88:	6544      	cmphs      	r1, r5
 8010a8a:	0c05      	bf      	0x8010a94	// 8010a94 <__umoddi3+0x14c>
 8010a8c:	5914      	addu      	r0, r1, r5
 8010a8e:	64c4      	cmphs      	r1, r3
 8010a90:	c4200c20 	incf      	r1, r0, 0
 8010a94:	604e      	subu      	r1, r3
 8010a96:	c4e18020 	divu      	r0, r1, r7
 8010a9a:	7dc0      	mult      	r7, r0
 8010a9c:	605e      	subu      	r1, r7
 8010a9e:	4130      	lsli      	r1, r1, 16
 8010aa0:	c40655e6 	zext      	r6, r6, 15, 0
 8010aa4:	7c08      	mult      	r0, r2
 8010aa6:	c4c12423 	or      	r3, r1, r6
 8010aaa:	640c      	cmphs      	r3, r0
 8010aac:	0808      	bt      	0x8010abc	// 8010abc <__umoddi3+0x174>
 8010aae:	60d4      	addu      	r3, r5
 8010ab0:	654c      	cmphs      	r3, r5
 8010ab2:	0c05      	bf      	0x8010abc	// 8010abc <__umoddi3+0x174>
 8010ab4:	614c      	addu      	r5, r3
 8010ab6:	640c      	cmphs      	r3, r0
 8010ab8:	c4650c20 	incf      	r3, r5, 0
 8010abc:	5b01      	subu      	r0, r3, r0
 8010abe:	7011      	lsr      	r0, r4
 8010ac0:	3100      	movi      	r1, 0
 8010ac2:	1486      	pop      	r4-r9
 8010ac4:	eb0300ff 	cmphsi      	r3, 256
 8010ac8:	c4000505 	mvc      	r5
 8010acc:	c465482d 	lsli      	r13, r5, 3
 8010ad0:	0798      	br      	0x8010a00	// 8010a00 <__umoddi3+0xb8>
 8010ad2:	eb0500ff 	cmphsi      	r5, 256
 8010ad6:	3308      	movi      	r3, 8
 8010ad8:	c5a30c40 	inct      	r13, r3, 0
 8010adc:	07b9      	br      	0x8010a4e	// 8010a4e <__umoddi3+0x106>
 8010ade:	eb0200ff 	cmphsi      	r2, 256
 8010ae2:	3308      	movi      	r3, 8
 8010ae4:	c5a30c40 	inct      	r13, r3, 0
 8010ae8:	0744      	br      	0x8010970	// 8010970 <__umoddi3+0x28>
 8010aea:	70d0      	lsl      	r3, r4
 8010aec:	c4a24047 	lsr      	r7, r2, r5
 8010af0:	6dcc      	or      	r7, r3
 8010af2:	c4a14046 	lsr      	r6, r1, r5
 8010af6:	c481402c 	lsl      	r12, r1, r4
 8010afa:	c4a04041 	lsr      	r1, r0, r5
 8010afe:	6c70      	or      	r1, r12
 8010b00:	c607484c 	lsri      	r12, r7, 16
 8010b04:	c5868028 	divu      	r8, r6, r12
 8010b08:	c4824023 	lsl      	r3, r2, r4
 8010b0c:	c5888422 	mult      	r2, r8, r12
 8010b10:	618a      	subu      	r6, r2
 8010b12:	c40755ed 	zext      	r13, r7, 15, 0
 8010b16:	46d0      	lsli      	r6, r6, 16
 8010b18:	4950      	lsri      	r2, r1, 16
 8010b1a:	c50d8429 	mult      	r9, r13, r8
 8010b1e:	6c98      	or      	r2, r6
 8010b20:	6648      	cmphs      	r2, r9
 8010b22:	7010      	lsl      	r0, r4
 8010b24:	0807      	bt      	0x8010b32	// 8010b32 <__umoddi3+0x1ea>
 8010b26:	609c      	addu      	r2, r7
 8010b28:	65c8      	cmphs      	r2, r7
 8010b2a:	e4c81000 	subi      	r6, r8, 1
 8010b2e:	088a      	bt      	0x8010c42	// 8010c42 <__umoddi3+0x2fa>
 8010b30:	6e1b      	mov      	r8, r6
 8010b32:	60a6      	subu      	r2, r9
 8010b34:	c5828026 	divu      	r6, r2, r12
 8010b38:	7f18      	mult      	r12, r6
 8010b3a:	60b2      	subu      	r2, r12
 8010b3c:	4250      	lsli      	r2, r2, 16
 8010b3e:	c40155e1 	zext      	r1, r1, 15, 0
 8010b42:	7f58      	mult      	r13, r6
 8010b44:	6c48      	or      	r1, r2
 8010b46:	6744      	cmphs      	r1, r13
 8010b48:	0806      	bt      	0x8010b54	// 8010b54 <__umoddi3+0x20c>
 8010b4a:	605c      	addu      	r1, r7
 8010b4c:	65c4      	cmphs      	r1, r7
 8010b4e:	5e43      	subi      	r2, r6, 1
 8010b50:	0874      	bt      	0x8010c38	// 8010c38 <__umoddi3+0x2f0>
 8010b52:	6d8b      	mov      	r6, r2
 8010b54:	c6084822 	lsli      	r2, r8, 16
 8010b58:	6c98      	or      	r2, r6
 8010b5a:	c40255e8 	zext      	r8, r2, 15, 0
 8010b5e:	c603484c 	lsri      	r12, r3, 16
 8010b62:	4a50      	lsri      	r2, r2, 16
 8010b64:	c5a1008d 	subu      	r13, r1, r13
 8010b68:	c40355e1 	zext      	r1, r3, 15, 0
 8010b6c:	c4288426 	mult      	r6, r8, r1
 8010b70:	7c48      	mult      	r1, r2
 8010b72:	7e30      	mult      	r8, r12
 8010b74:	7cb0      	mult      	r2, r12
 8010b76:	6204      	addu      	r8, r1
 8010b78:	c606484c 	lsri      	r12, r6, 16
 8010b7c:	6320      	addu      	r12, r8
 8010b7e:	6470      	cmphs      	r12, r1
 8010b80:	0804      	bt      	0x8010b88	// 8010b88 <__umoddi3+0x240>
 8010b82:	ea210001 	movih      	r1, 1
 8010b86:	6084      	addu      	r2, r1
 8010b88:	c60c4841 	lsri      	r1, r12, 16
 8010b8c:	6048      	addu      	r1, r2
 8010b8e:	6474      	cmphs      	r13, r1
 8010b90:	c60c482c 	lsli      	r12, r12, 16
 8010b94:	c40655e6 	zext      	r6, r6, 15, 0
 8010b98:	6318      	addu      	r12, r6
 8010b9a:	0c46      	bf      	0x8010c26	// 8010c26 <__umoddi3+0x2de>
 8010b9c:	6476      	cmpne      	r13, r1
 8010b9e:	0c60      	bf      	0x8010c5e	// 8010c5e <__umoddi3+0x316>
 8010ba0:	c42d0081 	subu      	r1, r13, r1
 8010ba4:	6cf3      	mov      	r3, r12
 8010ba6:	586d      	subu      	r3, r0, r3
 8010ba8:	64c0      	cmphs      	r0, r3
 8010baa:	6743      	mvcv      	r13
 8010bac:	6076      	subu      	r1, r13
 8010bae:	c4a14025 	lsl      	r5, r1, r5
 8010bb2:	c4834040 	lsr      	r0, r3, r4
 8010bb6:	6c14      	or      	r0, r5
 8010bb8:	7051      	lsr      	r1, r4
 8010bba:	1486      	pop      	r4-r9
 8010bbc:	7150      	lsl      	r5, r4
 8010bbe:	c5a14048 	lsr      	r8, r1, r13
 8010bc2:	4df0      	lsri      	r7, r5, 16
 8010bc4:	c5a0404d 	lsr      	r13, r0, r13
 8010bc8:	7050      	lsl      	r1, r4
 8010bca:	6c74      	or      	r1, r13
 8010bcc:	c4e8802d 	divu      	r13, r8, r7
 8010bd0:	c4ed8423 	mult      	r3, r13, r7
 8010bd4:	c40555e2 	zext      	r2, r5, 15, 0
 8010bd8:	620e      	subu      	r8, r3
 8010bda:	c5a2842c 	mult      	r12, r2, r13
 8010bde:	c6084828 	lsli      	r8, r8, 16
 8010be2:	c601484d 	lsri      	r13, r1, 16
 8010be6:	6f60      	or      	r13, r8
 8010be8:	6734      	cmphs      	r13, r12
 8010bea:	c4804026 	lsl      	r6, r0, r4
 8010bee:	0804      	bt      	0x8010bf6	// 8010bf6 <__umoddi3+0x2ae>
 8010bf0:	6354      	addu      	r13, r5
 8010bf2:	6574      	cmphs      	r13, r5
 8010bf4:	082d      	bt      	0x8010c4e	// 8010c4e <__umoddi3+0x306>
 8010bf6:	6372      	subu      	r13, r12
 8010bf8:	c4ed8023 	divu      	r3, r13, r7
 8010bfc:	c4e3842c 	mult      	r12, r3, r7
 8010c00:	6372      	subu      	r13, r12
 8010c02:	c60d482c 	lsli      	r12, r13, 16
 8010c06:	c40155e1 	zext      	r1, r1, 15, 0
 8010c0a:	7cc8      	mult      	r3, r2
 8010c0c:	6f04      	or      	r12, r1
 8010c0e:	64f0      	cmphs      	r12, r3
 8010c10:	0809      	bt      	0x8010c22	// 8010c22 <__umoddi3+0x2da>
 8010c12:	6314      	addu      	r12, r5
 8010c14:	6570      	cmphs      	r12, r5
 8010c16:	0c06      	bf      	0x8010c22	// 8010c22 <__umoddi3+0x2da>
 8010c18:	c4ac0021 	addu      	r1, r12, r5
 8010c1c:	64f0      	cmphs      	r12, r3
 8010c1e:	c5810c20 	incf      	r12, r1, 0
 8010c22:	630e      	subu      	r12, r3
 8010c24:	0724      	br      	0x8010a6c	// 8010a6c <__umoddi3+0x124>
 8010c26:	c46c0083 	subu      	r3, r12, r3
 8010c2a:	64f0      	cmphs      	r12, r3
 8010c2c:	605e      	subu      	r1, r7
 8010c2e:	65c3      	mvcv      	r7
 8010c30:	605e      	subu      	r1, r7
 8010c32:	c42d0081 	subu      	r1, r13, r1
 8010c36:	07b8      	br      	0x8010ba6	// 8010ba6 <__umoddi3+0x25e>
 8010c38:	6744      	cmphs      	r1, r13
 8010c3a:	0b8c      	bt      	0x8010b52	// 8010b52 <__umoddi3+0x20a>
 8010c3c:	2e01      	subi      	r6, 2
 8010c3e:	605c      	addu      	r1, r7
 8010c40:	078a      	br      	0x8010b54	// 8010b54 <__umoddi3+0x20c>
 8010c42:	6648      	cmphs      	r2, r9
 8010c44:	0b76      	bt      	0x8010b30	// 8010b30 <__umoddi3+0x1e8>
 8010c46:	e5081001 	subi      	r8, r8, 2
 8010c4a:	609c      	addu      	r2, r7
 8010c4c:	0773      	br      	0x8010b32	// 8010b32 <__umoddi3+0x1ea>
 8010c4e:	c4ad0023 	addu      	r3, r13, r5
 8010c52:	6734      	cmphs      	r13, r12
 8010c54:	c5a30c20 	incf      	r13, r3, 0
 8010c58:	07cf      	br      	0x8010bf6	// 8010bf6 <__umoddi3+0x2ae>
 8010c5a:	6d03      	mov      	r4, r0
 8010c5c:	06e6      	br      	0x8010a28	// 8010a28 <__umoddi3+0xe0>
 8010c5e:	6700      	cmphs      	r0, r12
 8010c60:	0fe3      	bf      	0x8010c26	// 8010c26 <__umoddi3+0x2de>
 8010c62:	6cf3      	mov      	r3, r12
 8010c64:	3100      	movi      	r1, 0
 8010c66:	07a0      	br      	0x8010ba6	// 8010ba6 <__umoddi3+0x25e>
 8010c68:	080161b4 	.long	0x080161b4

08010c6c <_fpadd_parts>:
 8010c6c:	14c8      	push      	r4-r11
 8010c6e:	1423      	subi      	r14, r14, 12
 8010c70:	9060      	ld.w      	r3, (r0, 0x0)
 8010c72:	3501      	movi      	r5, 1
 8010c74:	64d4      	cmphs      	r5, r3
 8010c76:	0871      	bt      	0x8010d58	// 8010d58 <_fpadd_parts+0xec>
 8010c78:	d9812000 	ld.w      	r12, (r1, 0x0)
 8010c7c:	6714      	cmphs      	r5, r12
 8010c7e:	086f      	bt      	0x8010d5c	// 8010d5c <_fpadd_parts+0xf0>
 8010c80:	3b44      	cmpnei      	r3, 4
 8010c82:	0cef      	bf      	0x8010e60	// 8010e60 <_fpadd_parts+0x1f4>
 8010c84:	eb4c0004 	cmpnei      	r12, 4
 8010c88:	0c6a      	bf      	0x8010d5c	// 8010d5c <_fpadd_parts+0xf0>
 8010c8a:	eb4c0002 	cmpnei      	r12, 2
 8010c8e:	0cc7      	bf      	0x8010e1c	// 8010e1c <_fpadd_parts+0x1b0>
 8010c90:	3b42      	cmpnei      	r3, 2
 8010c92:	0c65      	bf      	0x8010d5c	// 8010d5c <_fpadd_parts+0xf0>
 8010c94:	9062      	ld.w      	r3, (r0, 0x8)
 8010c96:	d9812002 	ld.w      	r12, (r1, 0x8)
 8010c9a:	c583008d 	subu      	r13, r3, r12
 8010c9e:	c40d0208 	abs      	r8, r13
 8010ca2:	eb28003f 	cmplti      	r8, 64
 8010ca6:	90c3      	ld.w      	r6, (r0, 0xc)
 8010ca8:	90e4      	ld.w      	r7, (r0, 0x10)
 8010caa:	b8c0      	st.w      	r6, (r14, 0x0)
 8010cac:	b8e1      	st.w      	r7, (r14, 0x4)
 8010cae:	d9412003 	ld.w      	r10, (r1, 0xc)
 8010cb2:	d9612004 	ld.w      	r11, (r1, 0x10)
 8010cb6:	0856      	bt      	0x8010d62	// 8010d62 <_fpadd_parts+0xf6>
 8010cb8:	64f1      	cmplt      	r12, r3
 8010cba:	0cc9      	bf      	0x8010e4c	// 8010e4c <_fpadd_parts+0x1e0>
 8010cbc:	ea0a0000 	movi      	r10, 0
 8010cc0:	ea0b0000 	movi      	r11, 0
 8010cc4:	9001      	ld.w      	r0, (r0, 0x4)
 8010cc6:	9121      	ld.w      	r1, (r1, 0x4)
 8010cc8:	6442      	cmpne      	r0, r1
 8010cca:	0c82      	bf      	0x8010dce	// 8010dce <_fpadd_parts+0x162>
 8010ccc:	d98e2000 	ld.w      	r12, (r14, 0x0)
 8010cd0:	d9ae2001 	ld.w      	r13, (r14, 0x4)
 8010cd4:	e90000b8 	bez      	r0, 0x8010e44	// 8010e44 <_fpadd_parts+0x1d8>
 8010cd8:	6730      	cmphs      	r12, r12
 8010cda:	c58a010c 	subc      	r12, r10, r12
 8010cde:	c5ab010d 	subc      	r13, r11, r13
 8010ce2:	e98d00c9 	blz      	r13, 0x8010e74	// 8010e74 <_fpadd_parts+0x208>
 8010ce6:	3100      	movi      	r1, 0
 8010ce8:	b221      	st.w      	r1, (r2, 0x4)
 8010cea:	b262      	st.w      	r3, (r2, 0x8)
 8010cec:	dd822003 	st.w      	r12, (r2, 0xc)
 8010cf0:	dda22004 	st.w      	r13, (r2, 0x10)
 8010cf4:	6c33      	mov      	r0, r12
 8010cf6:	6c77      	mov      	r1, r13
 8010cf8:	3840      	cmpnei      	r0, 0
 8010cfa:	c4210c81 	decf      	r1, r1, 1
 8010cfe:	2800      	subi      	r0, 1
 8010d00:	c7605023 	bmaski      	r3, 28
 8010d04:	644c      	cmphs      	r3, r1
 8010d06:	0c71      	bf      	0x8010de8	// 8010de8 <_fpadd_parts+0x17c>
 8010d08:	64c6      	cmpne      	r1, r3
 8010d0a:	0d0d      	bf      	0x8010f24	// 8010f24 <_fpadd_parts+0x2b8>
 8010d0c:	9262      	ld.w      	r3, (r2, 0x8)
 8010d0e:	3600      	movi      	r6, 0
 8010d10:	3700      	movi      	r7, 0
 8010d12:	ea0a0000 	movi      	r10, 0
 8010d16:	2b00      	subi      	r3, 1
 8010d18:	2e00      	subi      	r6, 1
 8010d1a:	2f00      	subi      	r7, 1
 8010d1c:	c7605028 	bmaski      	r8, 28
 8010d20:	e54a1001 	subi      	r10, r10, 2
 8010d24:	0403      	br      	0x8010d2a	// 8010d2a <_fpadd_parts+0xbe>
 8010d26:	6606      	cmpne      	r1, r8
 8010d28:	0c8b      	bf      	0x8010e3e	// 8010e3e <_fpadd_parts+0x1d2>
 8010d2a:	6511      	cmplt      	r4, r4
 8010d2c:	c58c0044 	addc      	r4, r12, r12
 8010d30:	c5ad0045 	addc      	r5, r13, r13
 8010d34:	6401      	cmplt      	r0, r0
 8010d36:	c4c40040 	addc      	r0, r4, r6
 8010d3a:	c4e50041 	addc      	r1, r5, r7
 8010d3e:	6460      	cmphs      	r8, r1
 8010d40:	6e4f      	mov      	r9, r3
 8010d42:	6f13      	mov      	r12, r4
 8010d44:	6f57      	mov      	r13, r5
 8010d46:	2b00      	subi      	r3, 1
 8010d48:	0bef      	bt      	0x8010d26	// 8010d26 <_fpadd_parts+0xba>
 8010d4a:	3303      	movi      	r3, 3
 8010d4c:	b283      	st.w      	r4, (r2, 0xc)
 8010d4e:	b2a4      	st.w      	r5, (r2, 0x10)
 8010d50:	dd222002 	st.w      	r9, (r2, 0x8)
 8010d54:	b260      	st.w      	r3, (r2, 0x0)
 8010d56:	6c0b      	mov      	r0, r2
 8010d58:	1403      	addi      	r14, r14, 12
 8010d5a:	1488      	pop      	r4-r11
 8010d5c:	6c07      	mov      	r0, r1
 8010d5e:	1403      	addi      	r14, r14, 12
 8010d60:	1488      	pop      	r4-r11
 8010d62:	e96d009a 	blsz      	r13, 0x8010e96	// 8010e96 <_fpadd_parts+0x22a>
 8010d66:	ea0d001f 	movi      	r13, 31
 8010d6a:	c42b4826 	lsli      	r6, r11, 1
 8010d6e:	6362      	subu      	r13, r8
 8010d70:	e588101f 	subi      	r12, r8, 32
 8010d74:	c5a6402d 	lsl      	r13, r6, r13
 8010d78:	c50a4046 	lsr      	r6, r10, r8
 8010d7c:	c7ec2880 	btsti      	r12, 31
 8010d80:	c58b4049 	lsr      	r9, r11, r12
 8010d84:	3400      	movi      	r4, 0
 8010d86:	6db4      	or      	r6, r13
 8010d88:	c4c90c20 	incf      	r6, r9, 0
 8010d8c:	6f53      	mov      	r13, r4
 8010d8e:	c5854029 	lsl      	r9, r5, r12
 8010d92:	c505402c 	lsl      	r12, r5, r8
 8010d96:	c50b4047 	lsr      	r7, r11, r8
 8010d9a:	c5a90c20 	incf      	r13, r9, 0
 8010d9e:	c5840c20 	incf      	r12, r4, 0
 8010da2:	c4e40c20 	incf      	r7, r4, 0
 8010da6:	eb4c0000 	cmpnei      	r12, 0
 8010daa:	c5ad0c81 	decf      	r13, r13, 1
 8010dae:	e58c1000 	subi      	r12, r12, 1
 8010db2:	6b28      	and      	r12, r10
 8010db4:	6b6c      	and      	r13, r11
 8010db6:	6f34      	or      	r12, r13
 8010db8:	eb4c0000 	cmpnei      	r12, 0
 8010dbc:	9001      	ld.w      	r0, (r0, 0x4)
 8010dbe:	9121      	ld.w      	r1, (r1, 0x4)
 8010dc0:	c400050a 	mvc      	r10
 8010dc4:	6442      	cmpne      	r0, r1
 8010dc6:	6ed3      	mov      	r11, r4
 8010dc8:	6e98      	or      	r10, r6
 8010dca:	6edc      	or      	r11, r7
 8010dcc:	0b80      	bt      	0x8010ccc	// 8010ccc <_fpadd_parts+0x60>
 8010dce:	d98e2000 	ld.w      	r12, (r14, 0x0)
 8010dd2:	d9ae2001 	ld.w      	r13, (r14, 0x4)
 8010dd6:	6731      	cmplt      	r12, r12
 8010dd8:	6329      	addc      	r12, r10
 8010dda:	636d      	addc      	r13, r11
 8010ddc:	b201      	st.w      	r0, (r2, 0x4)
 8010dde:	b262      	st.w      	r3, (r2, 0x8)
 8010de0:	dd822003 	st.w      	r12, (r2, 0xc)
 8010de4:	dda22004 	st.w      	r13, (r2, 0x10)
 8010de8:	3303      	movi      	r3, 3
 8010dea:	b260      	st.w      	r3, (r2, 0x0)
 8010dec:	c7805023 	bmaski      	r3, 29
 8010df0:	674c      	cmphs      	r3, r13
 8010df2:	0812      	bt      	0x8010e16	// 8010e16 <_fpadd_parts+0x1aa>
 8010df4:	c7ed4823 	lsli      	r3, r13, 31
 8010df8:	c42c4840 	lsri      	r0, r12, 1
 8010dfc:	6c0c      	or      	r0, r3
 8010dfe:	c42d4841 	lsri      	r1, r13, 1
 8010e02:	9262      	ld.w      	r3, (r2, 0x8)
 8010e04:	e48c2001 	andi      	r4, r12, 1
 8010e08:	3500      	movi      	r5, 0
 8010e0a:	6c10      	or      	r0, r4
 8010e0c:	6c54      	or      	r1, r5
 8010e0e:	2300      	addi      	r3, 1
 8010e10:	b203      	st.w      	r0, (r2, 0xc)
 8010e12:	b224      	st.w      	r1, (r2, 0x10)
 8010e14:	b262      	st.w      	r3, (r2, 0x8)
 8010e16:	6c0b      	mov      	r0, r2
 8010e18:	1403      	addi      	r14, r14, 12
 8010e1a:	1488      	pop      	r4-r11
 8010e1c:	3b42      	cmpnei      	r3, 2
 8010e1e:	0b9d      	bt      	0x8010d58	// 8010d58 <_fpadd_parts+0xec>
 8010e20:	b260      	st.w      	r3, (r2, 0x0)
 8010e22:	9061      	ld.w      	r3, (r0, 0x4)
 8010e24:	b261      	st.w      	r3, (r2, 0x4)
 8010e26:	9062      	ld.w      	r3, (r0, 0x8)
 8010e28:	b262      	st.w      	r3, (r2, 0x8)
 8010e2a:	9063      	ld.w      	r3, (r0, 0xc)
 8010e2c:	b263      	st.w      	r3, (r2, 0xc)
 8010e2e:	9064      	ld.w      	r3, (r0, 0x10)
 8010e30:	9121      	ld.w      	r1, (r1, 0x4)
 8010e32:	b264      	st.w      	r3, (r2, 0x10)
 8010e34:	9061      	ld.w      	r3, (r0, 0x4)
 8010e36:	68c4      	and      	r3, r1
 8010e38:	b261      	st.w      	r3, (r2, 0x4)
 8010e3a:	6c0b      	mov      	r0, r2
 8010e3c:	078e      	br      	0x8010d58	// 8010d58 <_fpadd_parts+0xec>
 8010e3e:	6428      	cmphs      	r10, r0
 8010e40:	0b75      	bt      	0x8010d2a	// 8010d2a <_fpadd_parts+0xbe>
 8010e42:	0784      	br      	0x8010d4a	// 8010d4a <_fpadd_parts+0xde>
 8010e44:	6730      	cmphs      	r12, r12
 8010e46:	632b      	subc      	r12, r10
 8010e48:	636f      	subc      	r13, r11
 8010e4a:	074c      	br      	0x8010ce2	// 8010ce2 <_fpadd_parts+0x76>
 8010e4c:	6cf3      	mov      	r3, r12
 8010e4e:	ea0d0000 	movi      	r13, 0
 8010e52:	ea0c0000 	movi      	r12, 0
 8010e56:	dd8e2000 	st.w      	r12, (r14, 0x0)
 8010e5a:	ddae2001 	st.w      	r13, (r14, 0x4)
 8010e5e:	0733      	br      	0x8010cc4	// 8010cc4 <_fpadd_parts+0x58>
 8010e60:	eb4c0004 	cmpnei      	r12, 4
 8010e64:	0b7a      	bt      	0x8010d58	// 8010d58 <_fpadd_parts+0xec>
 8010e66:	9041      	ld.w      	r2, (r0, 0x4)
 8010e68:	9161      	ld.w      	r3, (r1, 0x4)
 8010e6a:	64ca      	cmpne      	r2, r3
 8010e6c:	124b      	lrw      	r2, 0x80161a0	// 8010f98 <__subdf3+0x38>
 8010e6e:	c4020c40 	inct      	r0, r2, 0
 8010e72:	0773      	br      	0x8010d58	// 8010d58 <_fpadd_parts+0xec>
 8010e74:	ea0a0000 	movi      	r10, 0
 8010e78:	ea0b0000 	movi      	r11, 0
 8010e7c:	3101      	movi      	r1, 1
 8010e7e:	6730      	cmphs      	r12, r12
 8010e80:	c58a010c 	subc      	r12, r10, r12
 8010e84:	c5ab010d 	subc      	r13, r11, r13
 8010e88:	b221      	st.w      	r1, (r2, 0x4)
 8010e8a:	b262      	st.w      	r3, (r2, 0x8)
 8010e8c:	dd822003 	st.w      	r12, (r2, 0xc)
 8010e90:	dda22004 	st.w      	r13, (r2, 0x10)
 8010e94:	0730      	br      	0x8010cf4	// 8010cf4 <_fpadd_parts+0x88>
 8010e96:	e90dff17 	bez      	r13, 0x8010cc4	// 8010cc4 <_fpadd_parts+0x58>
 8010e9a:	98c0      	ld.w      	r6, (r14, 0x0)
 8010e9c:	98e1      	ld.w      	r7, (r14, 0x4)
 8010e9e:	ea0d001f 	movi      	r13, 31
 8010ea2:	47c1      	lsli      	r6, r7, 1
 8010ea4:	6362      	subu      	r13, r8
 8010ea6:	c5a6402d 	lsl      	r13, r6, r13
 8010eaa:	ddae2002 	st.w      	r13, (r14, 0x8)
 8010eae:	d9ae2000 	ld.w      	r13, (r14, 0x0)
 8010eb2:	e588101f 	subi      	r12, r8, 32
 8010eb6:	c50d4046 	lsr      	r6, r13, r8
 8010eba:	d9ae2002 	ld.w      	r13, (r14, 0x8)
 8010ebe:	c7ec2880 	btsti      	r12, 31
 8010ec2:	3400      	movi      	r4, 0
 8010ec4:	c5874049 	lsr      	r9, r7, r12
 8010ec8:	6db4      	or      	r6, r13
 8010eca:	d9ae2001 	ld.w      	r13, (r14, 0x4)
 8010ece:	c4c90c20 	incf      	r6, r9, 0
 8010ed2:	c50d4047 	lsr      	r7, r13, r8
 8010ed6:	c5854029 	lsl      	r9, r5, r12
 8010eda:	6f53      	mov      	r13, r4
 8010edc:	c505402c 	lsl      	r12, r5, r8
 8010ee0:	c5a90c20 	incf      	r13, r9, 0
 8010ee4:	c5840c20 	incf      	r12, r4, 0
 8010ee8:	c4e40c20 	incf      	r7, r4, 0
 8010eec:	60e0      	addu      	r3, r8
 8010eee:	eb4c0000 	cmpnei      	r12, 0
 8010ef2:	c5ad0c81 	decf      	r13, r13, 1
 8010ef6:	e58c1000 	subi      	r12, r12, 1
 8010efa:	d90e2000 	ld.w      	r8, (r14, 0x0)
 8010efe:	d92e2001 	ld.w      	r9, (r14, 0x4)
 8010f02:	6a30      	and      	r8, r12
 8010f04:	6a74      	and      	r9, r13
 8010f06:	6f23      	mov      	r12, r8
 8010f08:	6f67      	mov      	r13, r9
 8010f0a:	6f34      	or      	r12, r13
 8010f0c:	eb4c0000 	cmpnei      	r12, 0
 8010f10:	c400050c 	mvc      	r12
 8010f14:	6f53      	mov      	r13, r4
 8010f16:	c5862424 	or      	r4, r6, r12
 8010f1a:	c5a72425 	or      	r5, r7, r13
 8010f1e:	b880      	st.w      	r4, (r14, 0x0)
 8010f20:	b8a1      	st.w      	r5, (r14, 0x4)
 8010f22:	06d1      	br      	0x8010cc4	// 8010cc4 <_fpadd_parts+0x58>
 8010f24:	3300      	movi      	r3, 0
 8010f26:	2b01      	subi      	r3, 2
 8010f28:	640c      	cmphs      	r3, r0
 8010f2a:	0af1      	bt      	0x8010d0c	// 8010d0c <_fpadd_parts+0xa0>
 8010f2c:	075e      	br      	0x8010de8	// 8010de8 <_fpadd_parts+0x17c>
	...

08010f30 <__adddf3>:
 8010f30:	14d2      	push      	r4-r5, r15
 8010f32:	1433      	subi      	r14, r14, 76
 8010f34:	b800      	st.w      	r0, (r14, 0x0)
 8010f36:	b821      	st.w      	r1, (r14, 0x4)
 8010f38:	6c3b      	mov      	r0, r14
 8010f3a:	6d47      	mov      	r5, r1
 8010f3c:	1904      	addi      	r1, r14, 16
 8010f3e:	b863      	st.w      	r3, (r14, 0xc)
 8010f40:	b842      	st.w      	r2, (r14, 0x8)
 8010f42:	e00003b7 	bsr      	0x80116b0	// 80116b0 <__unpack_d>
 8010f46:	1909      	addi      	r1, r14, 36
 8010f48:	1802      	addi      	r0, r14, 8
 8010f4a:	e00003b3 	bsr      	0x80116b0	// 80116b0 <__unpack_d>
 8010f4e:	1a0e      	addi      	r2, r14, 56
 8010f50:	1909      	addi      	r1, r14, 36
 8010f52:	1804      	addi      	r0, r14, 16
 8010f54:	e3fffe8c 	bsr      	0x8010c6c	// 8010c6c <_fpadd_parts>
 8010f58:	e00002e4 	bsr      	0x8011520	// 8011520 <__pack_d>
 8010f5c:	1413      	addi      	r14, r14, 76
 8010f5e:	1492      	pop      	r4-r5, r15

08010f60 <__subdf3>:
 8010f60:	14d2      	push      	r4-r5, r15
 8010f62:	1433      	subi      	r14, r14, 76
 8010f64:	b800      	st.w      	r0, (r14, 0x0)
 8010f66:	b821      	st.w      	r1, (r14, 0x4)
 8010f68:	6c3b      	mov      	r0, r14
 8010f6a:	6d47      	mov      	r5, r1
 8010f6c:	1904      	addi      	r1, r14, 16
 8010f6e:	b842      	st.w      	r2, (r14, 0x8)
 8010f70:	b863      	st.w      	r3, (r14, 0xc)
 8010f72:	e000039f 	bsr      	0x80116b0	// 80116b0 <__unpack_d>
 8010f76:	1909      	addi      	r1, r14, 36
 8010f78:	1802      	addi      	r0, r14, 8
 8010f7a:	e000039b 	bsr      	0x80116b0	// 80116b0 <__unpack_d>
 8010f7e:	986a      	ld.w      	r3, (r14, 0x28)
 8010f80:	e4634001 	xori      	r3, r3, 1
 8010f84:	1a0e      	addi      	r2, r14, 56
 8010f86:	1909      	addi      	r1, r14, 36
 8010f88:	1804      	addi      	r0, r14, 16
 8010f8a:	b86a      	st.w      	r3, (r14, 0x28)
 8010f8c:	e3fffe70 	bsr      	0x8010c6c	// 8010c6c <_fpadd_parts>
 8010f90:	e00002c8 	bsr      	0x8011520	// 8011520 <__pack_d>
 8010f94:	1413      	addi      	r14, r14, 76
 8010f96:	1492      	pop      	r4-r5, r15
 8010f98:	080161a0 	.long	0x080161a0

08010f9c <__muldf3>:
 8010f9c:	14d8      	push      	r4-r11, r15
 8010f9e:	1436      	subi      	r14, r14, 88
 8010fa0:	b803      	st.w      	r0, (r14, 0xc)
 8010fa2:	b824      	st.w      	r1, (r14, 0x10)
 8010fa4:	1803      	addi      	r0, r14, 12
 8010fa6:	1907      	addi      	r1, r14, 28
 8010fa8:	b866      	st.w      	r3, (r14, 0x18)
 8010faa:	b845      	st.w      	r2, (r14, 0x14)
 8010fac:	e0000382 	bsr      	0x80116b0	// 80116b0 <__unpack_d>
 8010fb0:	190c      	addi      	r1, r14, 48
 8010fb2:	1805      	addi      	r0, r14, 20
 8010fb4:	e000037e 	bsr      	0x80116b0	// 80116b0 <__unpack_d>
 8010fb8:	9867      	ld.w      	r3, (r14, 0x1c)
 8010fba:	3b01      	cmphsi      	r3, 2
 8010fbc:	0ca4      	bf      	0x8011104	// 8011104 <__muldf3+0x168>
 8010fbe:	984c      	ld.w      	r2, (r14, 0x30)
 8010fc0:	3a01      	cmphsi      	r2, 2
 8010fc2:	0c94      	bf      	0x80110ea	// 80110ea <__muldf3+0x14e>
 8010fc4:	3b44      	cmpnei      	r3, 4
 8010fc6:	0c9d      	bf      	0x8011100	// 8011100 <__muldf3+0x164>
 8010fc8:	3a44      	cmpnei      	r2, 4
 8010fca:	0c8e      	bf      	0x80110e6	// 80110e6 <__muldf3+0x14a>
 8010fcc:	3b42      	cmpnei      	r3, 2
 8010fce:	0c9b      	bf      	0x8011104	// 8011104 <__muldf3+0x168>
 8010fd0:	3a42      	cmpnei      	r2, 2
 8010fd2:	0c8c      	bf      	0x80110ea	// 80110ea <__muldf3+0x14e>
 8010fd4:	d98e200f 	ld.w      	r12, (r14, 0x3c)
 8010fd8:	d90e200a 	ld.w      	r8, (r14, 0x28)
 8010fdc:	3300      	movi      	r3, 0
 8010fde:	6c33      	mov      	r0, r12
 8010fe0:	6ca3      	mov      	r2, r8
 8010fe2:	6c4f      	mov      	r1, r3
 8010fe4:	dd8e2002 	st.w      	r12, (r14, 0x8)
 8010fe8:	d96e2010 	ld.w      	r11, (r14, 0x40)
 8010fec:	e0000274 	bsr      	0x80114d4	// 80114d4 <__muldi3>
 8010ff0:	3300      	movi      	r3, 0
 8010ff2:	6ca3      	mov      	r2, r8
 8010ff4:	6d83      	mov      	r6, r0
 8010ff6:	6dc7      	mov      	r7, r1
 8010ff8:	6c4f      	mov      	r1, r3
 8010ffa:	6c2f      	mov      	r0, r11
 8010ffc:	e000026c 	bsr      	0x80114d4	// 80114d4 <__muldi3>
 8011000:	d94e200b 	ld.w      	r10, (r14, 0x2c)
 8011004:	3300      	movi      	r3, 0
 8011006:	6e03      	mov      	r8, r0
 8011008:	6e47      	mov      	r9, r1
 801100a:	6caf      	mov      	r2, r11
 801100c:	6c4f      	mov      	r1, r3
 801100e:	6c2b      	mov      	r0, r10
 8011010:	e0000262 	bsr      	0x80114d4	// 80114d4 <__muldi3>
 8011014:	d98e2002 	ld.w      	r12, (r14, 0x8)
 8011018:	3300      	movi      	r3, 0
 801101a:	b800      	st.w      	r0, (r14, 0x0)
 801101c:	b821      	st.w      	r1, (r14, 0x4)
 801101e:	6cb3      	mov      	r2, r12
 8011020:	6c2b      	mov      	r0, r10
 8011022:	6c4f      	mov      	r1, r3
 8011024:	e0000258 	bsr      	0x80114d4	// 80114d4 <__muldi3>
 8011028:	6401      	cmplt      	r0, r0
 801102a:	6021      	addc      	r0, r8
 801102c:	6065      	addc      	r1, r9
 801102e:	6644      	cmphs      	r1, r9
 8011030:	0c80      	bf      	0x8011130	// 8011130 <__muldf3+0x194>
 8011032:	6466      	cmpne      	r9, r1
 8011034:	0c7c      	bf      	0x801112c	// 801112c <__muldf3+0x190>
 8011036:	ea080000 	movi      	r8, 0
 801103a:	ea090000 	movi      	r9, 0
 801103e:	3200      	movi      	r2, 0
 8011040:	6cc3      	mov      	r3, r0
 8011042:	6489      	cmplt      	r2, r2
 8011044:	6099      	addc      	r2, r6
 8011046:	60dd      	addc      	r3, r7
 8011048:	65cc      	cmphs      	r3, r7
 801104a:	0c6a      	bf      	0x801111e	// 801111e <__muldf3+0x182>
 801104c:	64de      	cmpne      	r7, r3
 801104e:	0c66      	bf      	0x801111a	// 801111a <__muldf3+0x17e>
 8011050:	6f07      	mov      	r12, r1
 8011052:	ea0d0000 	movi      	r13, 0
 8011056:	9800      	ld.w      	r0, (r14, 0x0)
 8011058:	9821      	ld.w      	r1, (r14, 0x4)
 801105a:	6401      	cmplt      	r0, r0
 801105c:	6031      	addc      	r0, r12
 801105e:	6075      	addc      	r1, r13
 8011060:	6621      	cmplt      	r8, r8
 8011062:	6201      	addc      	r8, r0
 8011064:	6245      	addc      	r9, r1
 8011066:	980e      	ld.w      	r0, (r14, 0x38)
 8011068:	9829      	ld.w      	r1, (r14, 0x24)
 801106a:	6040      	addu      	r1, r0
 801106c:	590e      	addi      	r0, r1, 4
 801106e:	b813      	st.w      	r0, (r14, 0x4c)
 8011070:	d98e2008 	ld.w      	r12, (r14, 0x20)
 8011074:	980d      	ld.w      	r0, (r14, 0x34)
 8011076:	6432      	cmpne      	r12, r0
 8011078:	c780502a 	bmaski      	r10, 29
 801107c:	c4000500 	mvc      	r0
 8011080:	6668      	cmphs      	r10, r9
 8011082:	b812      	st.w      	r0, (r14, 0x48)
 8011084:	086f      	bt      	0x8011162	// 8011162 <__muldf3+0x1c6>
 8011086:	2104      	addi      	r1, 5
 8011088:	ea0c0000 	movi      	r12, 0
 801108c:	ea2d8000 	movih      	r13, 32768
 8011090:	e4082001 	andi      	r0, r8, 1
 8011094:	6ec7      	mov      	r11, r1
 8011096:	e900000a 	bez      	r0, 0x80110aa	// 80110aa <__muldf3+0x10e>
 801109a:	431f      	lsli      	r0, r3, 31
 801109c:	4a81      	lsri      	r4, r2, 1
 801109e:	6d00      	or      	r4, r0
 80110a0:	4ba1      	lsri      	r5, r3, 1
 80110a2:	c5842422 	or      	r2, r4, r12
 80110a6:	c5a52423 	or      	r3, r5, r13
 80110aa:	c4294840 	lsri      	r0, r9, 1
 80110ae:	6428      	cmphs      	r10, r0
 80110b0:	c7e94827 	lsli      	r7, r9, 31
 80110b4:	c4284846 	lsri      	r6, r8, 1
 80110b8:	c4c72428 	or      	r8, r7, r6
 80110bc:	6e43      	mov      	r9, r0
 80110be:	2100      	addi      	r1, 1
 80110c0:	0fe8      	bf      	0x8011090	// 8011090 <__muldf3+0xf4>
 80110c2:	dd6e2013 	st.w      	r11, (r14, 0x4c)
 80110c6:	e42820ff 	andi      	r1, r8, 255
 80110ca:	eb410080 	cmpnei      	r1, 128
 80110ce:	0c36      	bf      	0x801113a	// 801113a <__muldf3+0x19e>
 80110d0:	3303      	movi      	r3, 3
 80110d2:	dd0e2014 	st.w      	r8, (r14, 0x50)
 80110d6:	dd2e2015 	st.w      	r9, (r14, 0x54)
 80110da:	b871      	st.w      	r3, (r14, 0x44)
 80110dc:	1811      	addi      	r0, r14, 68
 80110de:	e0000221 	bsr      	0x8011520	// 8011520 <__pack_d>
 80110e2:	1416      	addi      	r14, r14, 88
 80110e4:	1498      	pop      	r4-r11, r15
 80110e6:	3b42      	cmpnei      	r3, 2
 80110e8:	0c3b      	bf      	0x801115e	// 801115e <__muldf3+0x1c2>
 80110ea:	986d      	ld.w      	r3, (r14, 0x34)
 80110ec:	9848      	ld.w      	r2, (r14, 0x20)
 80110ee:	64ca      	cmpne      	r2, r3
 80110f0:	c4000503 	mvc      	r3
 80110f4:	180c      	addi      	r0, r14, 48
 80110f6:	b86d      	st.w      	r3, (r14, 0x34)
 80110f8:	e0000214 	bsr      	0x8011520	// 8011520 <__pack_d>
 80110fc:	1416      	addi      	r14, r14, 88
 80110fe:	1498      	pop      	r4-r11, r15
 8011100:	3a42      	cmpnei      	r2, 2
 8011102:	0c2e      	bf      	0x801115e	// 801115e <__muldf3+0x1c2>
 8011104:	9848      	ld.w      	r2, (r14, 0x20)
 8011106:	986d      	ld.w      	r3, (r14, 0x34)
 8011108:	64ca      	cmpne      	r2, r3
 801110a:	c4000503 	mvc      	r3
 801110e:	1807      	addi      	r0, r14, 28
 8011110:	b868      	st.w      	r3, (r14, 0x20)
 8011112:	e0000207 	bsr      	0x8011520	// 8011520 <__pack_d>
 8011116:	1416      	addi      	r14, r14, 88
 8011118:	1498      	pop      	r4-r11, r15
 801111a:	6588      	cmphs      	r2, r6
 801111c:	0b9a      	bt      	0x8011050	// 8011050 <__muldf3+0xb4>
 801111e:	e5080000 	addi      	r8, r8, 1
 8011122:	eb480000 	cmpnei      	r8, 0
 8011126:	c5290c21 	incf      	r9, r9, 1
 801112a:	0793      	br      	0x8011050	// 8011050 <__muldf3+0xb4>
 801112c:	6600      	cmphs      	r0, r8
 801112e:	0b84      	bt      	0x8011036	// 8011036 <__muldf3+0x9a>
 8011130:	ea080000 	movi      	r8, 0
 8011134:	ea090001 	movi      	r9, 1
 8011138:	0783      	br      	0x801103e	// 801103e <__muldf3+0xa2>
 801113a:	e4282100 	andi      	r1, r8, 256
 801113e:	e921ffc9 	bnez      	r1, 0x80110d0	// 80110d0 <__muldf3+0x134>
 8011142:	6c8c      	or      	r2, r3
 8011144:	e902ffc6 	bez      	r2, 0x80110d0	// 80110d0 <__muldf3+0x134>
 8011148:	3280      	movi      	r2, 128
 801114a:	3300      	movi      	r3, 0
 801114c:	3100      	movi      	r1, 0
 801114e:	6489      	cmplt      	r2, r2
 8011150:	60a1      	addc      	r2, r8
 8011152:	60e5      	addc      	r3, r9
 8011154:	29ff      	subi      	r1, 256
 8011156:	c4222028 	and      	r8, r2, r1
 801115a:	6e4f      	mov      	r9, r3
 801115c:	07ba      	br      	0x80110d0	// 80110d0 <__muldf3+0x134>
 801115e:	100f      	lrw      	r0, 0x80161a0	// 8011198 <__muldf3+0x1fc>
 8011160:	07bf      	br      	0x80110de	// 80110de <__muldf3+0x142>
 8011162:	c760502c 	bmaski      	r12, 28
 8011166:	6670      	cmphs      	r12, r9
 8011168:	0faf      	bf      	0x80110c6	// 80110c6 <__muldf3+0x12a>
 801116a:	2102      	addi      	r1, 3
 801116c:	3401      	movi      	r4, 1
 801116e:	3500      	movi      	r5, 0
 8011170:	6da3      	mov      	r6, r8
 8011172:	6de7      	mov      	r7, r9
 8011174:	6c07      	mov      	r0, r1
 8011176:	6621      	cmplt      	r8, r8
 8011178:	6219      	addc      	r8, r6
 801117a:	625d      	addc      	r9, r7
 801117c:	e9a30004 	bhsz      	r3, 0x8011184	// 8011184 <__muldf3+0x1e8>
 8011180:	6e10      	or      	r8, r4
 8011182:	6e54      	or      	r9, r5
 8011184:	6d8b      	mov      	r6, r2
 8011186:	6dcf      	mov      	r7, r3
 8011188:	6489      	cmplt      	r2, r2
 801118a:	6099      	addc      	r2, r6
 801118c:	60dd      	addc      	r3, r7
 801118e:	6670      	cmphs      	r12, r9
 8011190:	2900      	subi      	r1, 1
 8011192:	0bef      	bt      	0x8011170	// 8011170 <__muldf3+0x1d4>
 8011194:	b813      	st.w      	r0, (r14, 0x4c)
 8011196:	0798      	br      	0x80110c6	// 80110c6 <__muldf3+0x12a>
 8011198:	080161a0 	.long	0x080161a0

0801119c <__divdf3>:
 801119c:	14d6      	push      	r4-r9, r15
 801119e:	142e      	subi      	r14, r14, 56
 80111a0:	b800      	st.w      	r0, (r14, 0x0)
 80111a2:	b821      	st.w      	r1, (r14, 0x4)
 80111a4:	6c3b      	mov      	r0, r14
 80111a6:	1904      	addi      	r1, r14, 16
 80111a8:	b863      	st.w      	r3, (r14, 0xc)
 80111aa:	b842      	st.w      	r2, (r14, 0x8)
 80111ac:	e0000282 	bsr      	0x80116b0	// 80116b0 <__unpack_d>
 80111b0:	1909      	addi      	r1, r14, 36
 80111b2:	1802      	addi      	r0, r14, 8
 80111b4:	e000027e 	bsr      	0x80116b0	// 80116b0 <__unpack_d>
 80111b8:	9864      	ld.w      	r3, (r14, 0x10)
 80111ba:	3b01      	cmphsi      	r3, 2
 80111bc:	0c51      	bf      	0x801125e	// 801125e <__divdf3+0xc2>
 80111be:	9829      	ld.w      	r1, (r14, 0x24)
 80111c0:	3201      	movi      	r2, 1
 80111c2:	6448      	cmphs      	r2, r1
 80111c4:	0873      	bt      	0x80112aa	// 80112aa <__divdf3+0x10e>
 80111c6:	9845      	ld.w      	r2, (r14, 0x14)
 80111c8:	980a      	ld.w      	r0, (r14, 0x28)
 80111ca:	3b44      	cmpnei      	r3, 4
 80111cc:	6c81      	xor      	r2, r0
 80111ce:	b845      	st.w      	r2, (r14, 0x14)
 80111d0:	0c4c      	bf      	0x8011268	// 8011268 <__divdf3+0xcc>
 80111d2:	3b42      	cmpnei      	r3, 2
 80111d4:	0c4a      	bf      	0x8011268	// 8011268 <__divdf3+0xcc>
 80111d6:	3944      	cmpnei      	r1, 4
 80111d8:	0c4c      	bf      	0x8011270	// 8011270 <__divdf3+0xd4>
 80111da:	3942      	cmpnei      	r1, 2
 80111dc:	0c63      	bf      	0x80112a2	// 80112a2 <__divdf3+0x106>
 80111de:	9807      	ld.w      	r0, (r14, 0x1c)
 80111e0:	9828      	ld.w      	r1, (r14, 0x20)
 80111e2:	98cc      	ld.w      	r6, (r14, 0x30)
 80111e4:	98ed      	ld.w      	r7, (r14, 0x34)
 80111e6:	9866      	ld.w      	r3, (r14, 0x18)
 80111e8:	984b      	ld.w      	r2, (r14, 0x2c)
 80111ea:	65c4      	cmphs      	r1, r7
 80111ec:	60ca      	subu      	r3, r2
 80111ee:	b866      	st.w      	r3, (r14, 0x18)
 80111f0:	0c05      	bf      	0x80111fa	// 80111fa <__divdf3+0x5e>
 80111f2:	645e      	cmpne      	r7, r1
 80111f4:	080a      	bt      	0x8011208	// 8011208 <__divdf3+0x6c>
 80111f6:	6580      	cmphs      	r0, r6
 80111f8:	0808      	bt      	0x8011208	// 8011208 <__divdf3+0x6c>
 80111fa:	6f03      	mov      	r12, r0
 80111fc:	6f47      	mov      	r13, r1
 80111fe:	2b00      	subi      	r3, 1
 8011200:	6401      	cmplt      	r0, r0
 8011202:	6031      	addc      	r0, r12
 8011204:	6075      	addc      	r1, r13
 8011206:	b866      	st.w      	r3, (r14, 0x18)
 8011208:	ea0c003d 	movi      	r12, 61
 801120c:	3400      	movi      	r4, 0
 801120e:	3500      	movi      	r5, 0
 8011210:	3200      	movi      	r2, 0
 8011212:	ea231000 	movih      	r3, 4096
 8011216:	65c4      	cmphs      	r1, r7
 8011218:	0c0a      	bf      	0x801122c	// 801122c <__divdf3+0x90>
 801121a:	645e      	cmpne      	r7, r1
 801121c:	0803      	bt      	0x8011222	// 8011222 <__divdf3+0x86>
 801121e:	6580      	cmphs      	r0, r6
 8011220:	0c06      	bf      	0x801122c	// 801122c <__divdf3+0x90>
 8011222:	6d08      	or      	r4, r2
 8011224:	6d4c      	or      	r5, r3
 8011226:	6400      	cmphs      	r0, r0
 8011228:	601b      	subc      	r0, r6
 801122a:	605f      	subc      	r1, r7
 801122c:	c7e34829 	lsli      	r9, r3, 31
 8011230:	c4224848 	lsri      	r8, r2, 1
 8011234:	c423484d 	lsri      	r13, r3, 1
 8011238:	c5092422 	or      	r2, r9, r8
 801123c:	e58c1000 	subi      	r12, r12, 1
 8011240:	6e03      	mov      	r8, r0
 8011242:	6e47      	mov      	r9, r1
 8011244:	6cf7      	mov      	r3, r13
 8011246:	6401      	cmplt      	r0, r0
 8011248:	6021      	addc      	r0, r8
 801124a:	6065      	addc      	r1, r9
 801124c:	e92cffe5 	bnez      	r12, 0x8011216	// 8011216 <__divdf3+0x7a>
 8011250:	e46420ff 	andi      	r3, r4, 255
 8011254:	eb430080 	cmpnei      	r3, 128
 8011258:	0c13      	bf      	0x801127e	// 801127e <__divdf3+0xe2>
 801125a:	b887      	st.w      	r4, (r14, 0x1c)
 801125c:	b8a8      	st.w      	r5, (r14, 0x20)
 801125e:	1804      	addi      	r0, r14, 16
 8011260:	e0000160 	bsr      	0x8011520	// 8011520 <__pack_d>
 8011264:	140e      	addi      	r14, r14, 56
 8011266:	1496      	pop      	r4-r9, r15
 8011268:	644e      	cmpne      	r3, r1
 801126a:	0bfa      	bt      	0x801125e	// 801125e <__divdf3+0xc2>
 801126c:	1011      	lrw      	r0, 0x80161a0	// 80112b0 <__divdf3+0x114>
 801126e:	07f9      	br      	0x8011260	// 8011260 <__divdf3+0xc4>
 8011270:	3300      	movi      	r3, 0
 8011272:	3400      	movi      	r4, 0
 8011274:	b867      	st.w      	r3, (r14, 0x1c)
 8011276:	b888      	st.w      	r4, (r14, 0x20)
 8011278:	b866      	st.w      	r3, (r14, 0x18)
 801127a:	1804      	addi      	r0, r14, 16
 801127c:	07f2      	br      	0x8011260	// 8011260 <__divdf3+0xc4>
 801127e:	e4642100 	andi      	r3, r4, 256
 8011282:	e923ffec 	bnez      	r3, 0x801125a	// 801125a <__divdf3+0xbe>
 8011286:	6c04      	or      	r0, r1
 8011288:	e900ffe9 	bez      	r0, 0x801125a	// 801125a <__divdf3+0xbe>
 801128c:	3280      	movi      	r2, 128
 801128e:	3300      	movi      	r3, 0
 8011290:	3100      	movi      	r1, 0
 8011292:	6489      	cmplt      	r2, r2
 8011294:	6091      	addc      	r2, r4
 8011296:	60d5      	addc      	r3, r5
 8011298:	29ff      	subi      	r1, 256
 801129a:	c4222024 	and      	r4, r2, r1
 801129e:	6d4f      	mov      	r5, r3
 80112a0:	07dd      	br      	0x801125a	// 801125a <__divdf3+0xbe>
 80112a2:	3304      	movi      	r3, 4
 80112a4:	b864      	st.w      	r3, (r14, 0x10)
 80112a6:	1804      	addi      	r0, r14, 16
 80112a8:	07dc      	br      	0x8011260	// 8011260 <__divdf3+0xc4>
 80112aa:	1809      	addi      	r0, r14, 36
 80112ac:	07da      	br      	0x8011260	// 8011260 <__divdf3+0xc4>
 80112ae:	0000      	.short	0x0000
 80112b0:	080161a0 	.long	0x080161a0

080112b4 <__nedf2>:
 80112b4:	14d2      	push      	r4-r5, r15
 80112b6:	142e      	subi      	r14, r14, 56
 80112b8:	b800      	st.w      	r0, (r14, 0x0)
 80112ba:	b821      	st.w      	r1, (r14, 0x4)
 80112bc:	6c3b      	mov      	r0, r14
 80112be:	6d47      	mov      	r5, r1
 80112c0:	1904      	addi      	r1, r14, 16
 80112c2:	b863      	st.w      	r3, (r14, 0xc)
 80112c4:	b842      	st.w      	r2, (r14, 0x8)
 80112c6:	e00001f5 	bsr      	0x80116b0	// 80116b0 <__unpack_d>
 80112ca:	1802      	addi      	r0, r14, 8
 80112cc:	1909      	addi      	r1, r14, 36
 80112ce:	e00001f1 	bsr      	0x80116b0	// 80116b0 <__unpack_d>
 80112d2:	9864      	ld.w      	r3, (r14, 0x10)
 80112d4:	3001      	movi      	r0, 1
 80112d6:	64c0      	cmphs      	r0, r3
 80112d8:	0808      	bt      	0x80112e8	// 80112e8 <__nedf2+0x34>
 80112da:	9869      	ld.w      	r3, (r14, 0x24)
 80112dc:	64c0      	cmphs      	r0, r3
 80112de:	0805      	bt      	0x80112e8	// 80112e8 <__nedf2+0x34>
 80112e0:	1909      	addi      	r1, r14, 36
 80112e2:	1804      	addi      	r0, r14, 16
 80112e4:	e0000258 	bsr      	0x8011794	// 8011794 <__fpcmp_parts_d>
 80112e8:	140e      	addi      	r14, r14, 56
 80112ea:	1492      	pop      	r4-r5, r15

080112ec <__gtdf2>:
 80112ec:	14d2      	push      	r4-r5, r15
 80112ee:	142e      	subi      	r14, r14, 56
 80112f0:	b800      	st.w      	r0, (r14, 0x0)
 80112f2:	b821      	st.w      	r1, (r14, 0x4)
 80112f4:	6c3b      	mov      	r0, r14
 80112f6:	6d47      	mov      	r5, r1
 80112f8:	1904      	addi      	r1, r14, 16
 80112fa:	b842      	st.w      	r2, (r14, 0x8)
 80112fc:	b863      	st.w      	r3, (r14, 0xc)
 80112fe:	e00001d9 	bsr      	0x80116b0	// 80116b0 <__unpack_d>
 8011302:	1909      	addi      	r1, r14, 36
 8011304:	1802      	addi      	r0, r14, 8
 8011306:	e00001d5 	bsr      	0x80116b0	// 80116b0 <__unpack_d>
 801130a:	9844      	ld.w      	r2, (r14, 0x10)
 801130c:	3301      	movi      	r3, 1
 801130e:	648c      	cmphs      	r3, r2
 8011310:	080a      	bt      	0x8011324	// 8011324 <__gtdf2+0x38>
 8011312:	9849      	ld.w      	r2, (r14, 0x24)
 8011314:	648c      	cmphs      	r3, r2
 8011316:	0807      	bt      	0x8011324	// 8011324 <__gtdf2+0x38>
 8011318:	1909      	addi      	r1, r14, 36
 801131a:	1804      	addi      	r0, r14, 16
 801131c:	e000023c 	bsr      	0x8011794	// 8011794 <__fpcmp_parts_d>
 8011320:	140e      	addi      	r14, r14, 56
 8011322:	1492      	pop      	r4-r5, r15
 8011324:	3000      	movi      	r0, 0
 8011326:	2800      	subi      	r0, 1
 8011328:	140e      	addi      	r14, r14, 56
 801132a:	1492      	pop      	r4-r5, r15

0801132c <__gedf2>:
 801132c:	14d2      	push      	r4-r5, r15
 801132e:	142e      	subi      	r14, r14, 56
 8011330:	b800      	st.w      	r0, (r14, 0x0)
 8011332:	b821      	st.w      	r1, (r14, 0x4)
 8011334:	6c3b      	mov      	r0, r14
 8011336:	6d47      	mov      	r5, r1
 8011338:	1904      	addi      	r1, r14, 16
 801133a:	b842      	st.w      	r2, (r14, 0x8)
 801133c:	b863      	st.w      	r3, (r14, 0xc)
 801133e:	e00001b9 	bsr      	0x80116b0	// 80116b0 <__unpack_d>
 8011342:	1909      	addi      	r1, r14, 36
 8011344:	1802      	addi      	r0, r14, 8
 8011346:	e00001b5 	bsr      	0x80116b0	// 80116b0 <__unpack_d>
 801134a:	9844      	ld.w      	r2, (r14, 0x10)
 801134c:	3301      	movi      	r3, 1
 801134e:	648c      	cmphs      	r3, r2
 8011350:	080a      	bt      	0x8011364	// 8011364 <__gedf2+0x38>
 8011352:	9849      	ld.w      	r2, (r14, 0x24)
 8011354:	648c      	cmphs      	r3, r2
 8011356:	0807      	bt      	0x8011364	// 8011364 <__gedf2+0x38>
 8011358:	1909      	addi      	r1, r14, 36
 801135a:	1804      	addi      	r0, r14, 16
 801135c:	e000021c 	bsr      	0x8011794	// 8011794 <__fpcmp_parts_d>
 8011360:	140e      	addi      	r14, r14, 56
 8011362:	1492      	pop      	r4-r5, r15
 8011364:	3000      	movi      	r0, 0
 8011366:	2800      	subi      	r0, 1
 8011368:	140e      	addi      	r14, r14, 56
 801136a:	1492      	pop      	r4-r5, r15

0801136c <__ltdf2>:
 801136c:	14d2      	push      	r4-r5, r15
 801136e:	142e      	subi      	r14, r14, 56
 8011370:	b800      	st.w      	r0, (r14, 0x0)
 8011372:	b821      	st.w      	r1, (r14, 0x4)
 8011374:	6c3b      	mov      	r0, r14
 8011376:	6d47      	mov      	r5, r1
 8011378:	1904      	addi      	r1, r14, 16
 801137a:	b863      	st.w      	r3, (r14, 0xc)
 801137c:	b842      	st.w      	r2, (r14, 0x8)
 801137e:	e0000199 	bsr      	0x80116b0	// 80116b0 <__unpack_d>
 8011382:	1802      	addi      	r0, r14, 8
 8011384:	1909      	addi      	r1, r14, 36
 8011386:	e0000195 	bsr      	0x80116b0	// 80116b0 <__unpack_d>
 801138a:	9864      	ld.w      	r3, (r14, 0x10)
 801138c:	3001      	movi      	r0, 1
 801138e:	64c0      	cmphs      	r0, r3
 8011390:	0808      	bt      	0x80113a0	// 80113a0 <__ltdf2+0x34>
 8011392:	9869      	ld.w      	r3, (r14, 0x24)
 8011394:	64c0      	cmphs      	r0, r3
 8011396:	0805      	bt      	0x80113a0	// 80113a0 <__ltdf2+0x34>
 8011398:	1909      	addi      	r1, r14, 36
 801139a:	1804      	addi      	r0, r14, 16
 801139c:	e00001fc 	bsr      	0x8011794	// 8011794 <__fpcmp_parts_d>
 80113a0:	140e      	addi      	r14, r14, 56
 80113a2:	1492      	pop      	r4-r5, r15

080113a4 <__floatsidf>:
 80113a4:	14d0      	push      	r15
 80113a6:	1425      	subi      	r14, r14, 20
 80113a8:	3303      	movi      	r3, 3
 80113aa:	b860      	st.w      	r3, (r14, 0x0)
 80113ac:	487f      	lsri      	r3, r0, 31
 80113ae:	b861      	st.w      	r3, (r14, 0x4)
 80113b0:	e9200009 	bnez      	r0, 0x80113c2	// 80113c2 <__floatsidf+0x1e>
 80113b4:	3302      	movi      	r3, 2
 80113b6:	b860      	st.w      	r3, (r14, 0x0)
 80113b8:	6c3b      	mov      	r0, r14
 80113ba:	e00000b3 	bsr      	0x8011520	// 8011520 <__pack_d>
 80113be:	1405      	addi      	r14, r14, 20
 80113c0:	1490      	pop      	r15
 80113c2:	e9a00008 	bhsz      	r0, 0x80113d2	// 80113d2 <__floatsidf+0x2e>
 80113c6:	ea238000 	movih      	r3, 32768
 80113ca:	64c2      	cmpne      	r0, r3
 80113cc:	0c1c      	bf      	0x8011404	// 8011404 <__floatsidf+0x60>
 80113ce:	3300      	movi      	r3, 0
 80113d0:	5b01      	subu      	r0, r3, r0
 80113d2:	c4007c42 	ff1      	r2, r0
 80113d6:	e422001c 	addi      	r1, r2, 29
 80113da:	ea0c001f 	movi      	r12, 31
 80113de:	2a02      	subi      	r2, 3
 80113e0:	4861      	lsri      	r3, r0, 1
 80113e2:	6306      	subu      	r12, r1
 80113e4:	c440402d 	lsl      	r13, r0, r2
 80113e8:	3adf      	btsti      	r2, 31
 80113ea:	70f1      	lsr      	r3, r12
 80113ec:	c46d0c20 	incf      	r3, r13, 0
 80113f0:	7004      	lsl      	r0, r1
 80113f2:	b864      	st.w      	r3, (r14, 0x10)
 80113f4:	3300      	movi      	r3, 0
 80113f6:	c4030c20 	incf      	r0, r3, 0
 80113fa:	333c      	movi      	r3, 60
 80113fc:	60c6      	subu      	r3, r1
 80113fe:	b803      	st.w      	r0, (r14, 0xc)
 8011400:	b862      	st.w      	r3, (r14, 0x8)
 8011402:	07db      	br      	0x80113b8	// 80113b8 <__floatsidf+0x14>
 8011404:	3000      	movi      	r0, 0
 8011406:	ea21c1e0 	movih      	r1, 49632
 801140a:	07da      	br      	0x80113be	// 80113be <__floatsidf+0x1a>

0801140c <__fixdfsi>:
 801140c:	14d0      	push      	r15
 801140e:	1427      	subi      	r14, r14, 28
 8011410:	b800      	st.w      	r0, (r14, 0x0)
 8011412:	b821      	st.w      	r1, (r14, 0x4)
 8011414:	6c3b      	mov      	r0, r14
 8011416:	1902      	addi      	r1, r14, 8
 8011418:	e000014c 	bsr      	0x80116b0	// 80116b0 <__unpack_d>
 801141c:	9862      	ld.w      	r3, (r14, 0x8)
 801141e:	3202      	movi      	r2, 2
 8011420:	64c8      	cmphs      	r2, r3
 8011422:	082a      	bt      	0x8011476	// 8011476 <__fixdfsi+0x6a>
 8011424:	3b44      	cmpnei      	r3, 4
 8011426:	0c06      	bf      	0x8011432	// 8011432 <__fixdfsi+0x26>
 8011428:	9804      	ld.w      	r0, (r14, 0x10)
 801142a:	e9800026 	blz      	r0, 0x8011476	// 8011476 <__fixdfsi+0x6a>
 801142e:	383e      	cmplti      	r0, 31
 8011430:	080a      	bt      	0x8011444	// 8011444 <__fixdfsi+0x38>
 8011432:	9863      	ld.w      	r3, (r14, 0xc)
 8011434:	3b40      	cmpnei      	r3, 0
 8011436:	c4000500 	mvc      	r0
 801143a:	c7c05023 	bmaski      	r3, 31
 801143e:	600c      	addu      	r0, r3
 8011440:	1407      	addi      	r14, r14, 28
 8011442:	1490      	pop      	r15
 8011444:	323c      	movi      	r2, 60
 8011446:	5a21      	subu      	r1, r2, r0
 8011448:	e581101f 	subi      	r12, r1, 32
 801144c:	9866      	ld.w      	r3, (r14, 0x18)
 801144e:	321f      	movi      	r2, 31
 8011450:	c5834040 	lsr      	r0, r3, r12
 8011454:	6086      	subu      	r2, r1
 8011456:	4361      	lsli      	r3, r3, 1
 8011458:	70c8      	lsl      	r3, r2
 801145a:	9845      	ld.w      	r2, (r14, 0x14)
 801145c:	7085      	lsr      	r2, r1
 801145e:	6c8c      	or      	r2, r3
 8011460:	9863      	ld.w      	r3, (r14, 0xc)
 8011462:	c7ec2880 	btsti      	r12, 31
 8011466:	c4020c40 	inct      	r0, r2, 0
 801146a:	e903ffeb 	bez      	r3, 0x8011440	// 8011440 <__fixdfsi+0x34>
 801146e:	3300      	movi      	r3, 0
 8011470:	5b01      	subu      	r0, r3, r0
 8011472:	1407      	addi      	r14, r14, 28
 8011474:	1490      	pop      	r15
 8011476:	3000      	movi      	r0, 0
 8011478:	1407      	addi      	r14, r14, 28
 801147a:	1490      	pop      	r15

0801147c <__floatunsidf>:
 801147c:	14d1      	push      	r4, r15
 801147e:	1425      	subi      	r14, r14, 20
 8011480:	3100      	movi      	r1, 0
 8011482:	b821      	st.w      	r1, (r14, 0x4)
 8011484:	e9000020 	bez      	r0, 0x80114c4	// 80114c4 <__floatunsidf+0x48>
 8011488:	c4007c42 	ff1      	r2, r0
 801148c:	e582001c 	addi      	r12, r2, 29
 8011490:	3303      	movi      	r3, 3
 8011492:	ea0d001f 	movi      	r13, 31
 8011496:	2a02      	subi      	r2, 3
 8011498:	b860      	st.w      	r3, (r14, 0x0)
 801149a:	6372      	subu      	r13, r12
 801149c:	4861      	lsri      	r3, r0, 1
 801149e:	c4404024 	lsl      	r4, r0, r2
 80114a2:	3adf      	btsti      	r2, 31
 80114a4:	70f5      	lsr      	r3, r13
 80114a6:	c4640c20 	incf      	r3, r4, 0
 80114aa:	7030      	lsl      	r0, r12
 80114ac:	c4010c20 	incf      	r0, r1, 0
 80114b0:	b864      	st.w      	r3, (r14, 0x10)
 80114b2:	333c      	movi      	r3, 60
 80114b4:	b803      	st.w      	r0, (r14, 0xc)
 80114b6:	60f2      	subu      	r3, r12
 80114b8:	6c3b      	mov      	r0, r14
 80114ba:	b862      	st.w      	r3, (r14, 0x8)
 80114bc:	e0000032 	bsr      	0x8011520	// 8011520 <__pack_d>
 80114c0:	1405      	addi      	r14, r14, 20
 80114c2:	1491      	pop      	r4, r15
 80114c4:	3302      	movi      	r3, 2
 80114c6:	6c3b      	mov      	r0, r14
 80114c8:	b860      	st.w      	r3, (r14, 0x0)
 80114ca:	e000002b 	bsr      	0x8011520	// 8011520 <__pack_d>
 80114ce:	1405      	addi      	r14, r14, 20
 80114d0:	1491      	pop      	r4, r15
	...

080114d4 <__muldi3>:
 80114d4:	14c3      	push      	r4-r6
 80114d6:	c602484d 	lsri      	r13, r2, 16
 80114da:	c40055ec 	zext      	r12, r0, 15, 0
 80114de:	4890      	lsri      	r4, r0, 16
 80114e0:	c40255e5 	zext      	r5, r2, 15, 0
 80114e4:	c4ac8426 	mult      	r6, r12, r5
 80114e8:	7d50      	mult      	r5, r4
 80114ea:	7f34      	mult      	r12, r13
 80114ec:	7d34      	mult      	r4, r13
 80114ee:	c4ac002d 	addu      	r13, r12, r5
 80114f2:	c606484c 	lsri      	r12, r6, 16
 80114f6:	6334      	addu      	r12, r13
 80114f8:	6570      	cmphs      	r12, r5
 80114fa:	0804      	bt      	0x8011502	// 8011502 <__muldi3+0x2e>
 80114fc:	ea2d0001 	movih      	r13, 1
 8011500:	6134      	addu      	r4, r13
 8011502:	c60c484d 	lsri      	r13, r12, 16
 8011506:	7cc0      	mult      	r3, r0
 8011508:	7c48      	mult      	r1, r2
 801150a:	6134      	addu      	r4, r13
 801150c:	c60c482c 	lsli      	r12, r12, 16
 8011510:	c40655e6 	zext      	r6, r6, 15, 0
 8011514:	604c      	addu      	r1, r3
 8011516:	c4cc0020 	addu      	r0, r12, r6
 801151a:	6050      	addu      	r1, r4
 801151c:	1483      	pop      	r4-r6
	...

08011520 <__pack_d>:
 8011520:	14c5      	push      	r4-r8
 8011522:	9020      	ld.w      	r1, (r0, 0x0)
 8011524:	3901      	cmphsi      	r1, 2
 8011526:	9043      	ld.w      	r2, (r0, 0xc)
 8011528:	9064      	ld.w      	r3, (r0, 0x10)
 801152a:	d9a02001 	ld.w      	r13, (r0, 0x4)
 801152e:	0c47      	bf      	0x80115bc	// 80115bc <__pack_d+0x9c>
 8011530:	3944      	cmpnei      	r1, 4
 8011532:	0c40      	bf      	0x80115b2	// 80115b2 <__pack_d+0x92>
 8011534:	3942      	cmpnei      	r1, 2
 8011536:	0c28      	bf      	0x8011586	// 8011586 <__pack_d+0x66>
 8011538:	c4622421 	or      	r1, r2, r3
 801153c:	e9010025 	bez      	r1, 0x8011586	// 8011586 <__pack_d+0x66>
 8011540:	9022      	ld.w      	r1, (r0, 0x8)
 8011542:	ea0003fd 	movi      	r0, 1021
 8011546:	6c02      	nor      	r0, r0
 8011548:	6405      	cmplt      	r1, r0
 801154a:	0855      	bt      	0x80115f4	// 80115f4 <__pack_d+0xd4>
 801154c:	eb2103ff 	cmplti      	r1, 1024
 8011550:	0c31      	bf      	0x80115b2	// 80115b2 <__pack_d+0x92>
 8011552:	e40220ff 	andi      	r0, r2, 255
 8011556:	eb400080 	cmpnei      	r0, 128
 801155a:	0c43      	bf      	0x80115e0	// 80115e0 <__pack_d+0xc0>
 801155c:	347f      	movi      	r4, 127
 801155e:	3500      	movi      	r5, 0
 8011560:	6489      	cmplt      	r2, r2
 8011562:	6091      	addc      	r2, r4
 8011564:	60d5      	addc      	r3, r5
 8011566:	c7805020 	bmaski      	r0, 29
 801156a:	64c0      	cmphs      	r0, r3
 801156c:	0c19      	bf      	0x801159e	// 801159e <__pack_d+0x7e>
 801156e:	e58103fe 	addi      	r12, r1, 1023
 8011572:	4b28      	lsri      	r1, r3, 8
 8011574:	4398      	lsli      	r4, r3, 24
 8011576:	4a08      	lsri      	r0, r2, 8
 8011578:	c4015663 	zext      	r3, r1, 19, 0
 801157c:	6c4f      	mov      	r1, r3
 801157e:	6c10      	or      	r0, r4
 8011580:	e46c27ff 	andi      	r3, r12, 2047
 8011584:	0404      	br      	0x801158c	// 801158c <__pack_d+0x6c>
 8011586:	3300      	movi      	r3, 0
 8011588:	3000      	movi      	r0, 0
 801158a:	3100      	movi      	r1, 0
 801158c:	3200      	movi      	r2, 0
 801158e:	c4415e60 	ins      	r2, r1, 19, 0
 8011592:	c4435d54 	ins      	r2, r3, 30, 20
 8011596:	c44d5c1f 	ins      	r2, r13, 31, 31
 801159a:	6c4b      	mov      	r1, r2
 801159c:	1485      	pop      	r4-r8
 801159e:	439f      	lsli      	r4, r3, 31
 80115a0:	c422484c 	lsri      	r12, r2, 1
 80115a4:	4b01      	lsri      	r0, r3, 1
 80115a6:	c5842422 	or      	r2, r4, r12
 80115aa:	6cc3      	mov      	r3, r0
 80115ac:	e58103ff 	addi      	r12, r1, 1024
 80115b0:	07e1      	br      	0x8011572	// 8011572 <__pack_d+0x52>
 80115b2:	ea0307ff 	movi      	r3, 2047
 80115b6:	3000      	movi      	r0, 0
 80115b8:	3100      	movi      	r1, 0
 80115ba:	07e9      	br      	0x801158c	// 801158c <__pack_d+0x6c>
 80115bc:	c703482c 	lsli      	r12, r3, 24
 80115c0:	4a48      	lsri      	r2, r2, 8
 80115c2:	c44c2420 	or      	r0, r12, r2
 80115c6:	c5035741 	zext      	r1, r3, 26, 8
 80115ca:	3200      	movi      	r2, 0
 80115cc:	ea230008 	movih      	r3, 8
 80115d0:	6c08      	or      	r0, r2
 80115d2:	6c4c      	or      	r1, r3
 80115d4:	c4015663 	zext      	r3, r1, 19, 0
 80115d8:	6c4f      	mov      	r1, r3
 80115da:	ea0307ff 	movi      	r3, 2047
 80115de:	07d7      	br      	0x801158c	// 801158c <__pack_d+0x6c>
 80115e0:	e4022100 	andi      	r0, r2, 256
 80115e4:	e900ffc1 	bez      	r0, 0x8011566	// 8011566 <__pack_d+0x46>
 80115e8:	3480      	movi      	r4, 128
 80115ea:	3500      	movi      	r5, 0
 80115ec:	6489      	cmplt      	r2, r2
 80115ee:	6091      	addc      	r2, r4
 80115f0:	60d5      	addc      	r3, r5
 80115f2:	07ba      	br      	0x8011566	// 8011566 <__pack_d+0x46>
 80115f4:	5825      	subu      	r1, r0, r1
 80115f6:	eb210038 	cmplti      	r1, 57
 80115fa:	0fc6      	bf      	0x8011586	// 8011586 <__pack_d+0x66>
 80115fc:	341f      	movi      	r4, 31
 80115fe:	c423482c 	lsli      	r12, r3, 1
 8011602:	6106      	subu      	r4, r1
 8011604:	e401101f 	subi      	r0, r1, 32
 8011608:	7310      	lsl      	r12, r4
 801160a:	c4224046 	lsr      	r6, r2, r1
 801160e:	38df      	btsti      	r0, 31
 8011610:	c4034045 	lsr      	r5, r3, r0
 8011614:	ea080000 	movi      	r8, 0
 8011618:	6db0      	or      	r6, r12
 801161a:	ea0c0001 	movi      	r12, 1
 801161e:	c4c50c20 	incf      	r6, r5, 0
 8011622:	c40c4020 	lsl      	r0, r12, r0
 8011626:	6d63      	mov      	r5, r8
 8011628:	c42c4024 	lsl      	r4, r12, r1
 801162c:	c4234047 	lsr      	r7, r3, r1
 8011630:	c4a00c20 	incf      	r5, r0, 0
 8011634:	c4880c20 	incf      	r4, r8, 0
 8011638:	c4e80c20 	incf      	r7, r8, 0
 801163c:	3c40      	cmpnei      	r4, 0
 801163e:	c4a50c81 	decf      	r5, r5, 1
 8011642:	2c00      	subi      	r4, 1
 8011644:	6890      	and      	r2, r4
 8011646:	68d4      	and      	r3, r5
 8011648:	6c8c      	or      	r2, r3
 801164a:	3a40      	cmpnei      	r2, 0
 801164c:	c4000502 	mvc      	r2
 8011650:	6ce3      	mov      	r3, r8
 8011652:	6d88      	or      	r6, r2
 8011654:	6dcc      	or      	r7, r3
 8011656:	e46620ff 	andi      	r3, r6, 255
 801165a:	eb430080 	cmpnei      	r3, 128
 801165e:	0814      	bt      	0x8011686	// 8011686 <__pack_d+0x166>
 8011660:	e4662100 	andi      	r3, r6, 256
 8011664:	e9230023 	bnez      	r3, 0x80116aa	// 80116aa <__pack_d+0x18a>
 8011668:	4758      	lsli      	r2, r7, 24
 801166a:	4f28      	lsri      	r1, r7, 8
 801166c:	4e08      	lsri      	r0, r6, 8
 801166e:	6c08      	or      	r0, r2
 8011670:	c4015662 	zext      	r2, r1, 19, 0
 8011674:	6c4b      	mov      	r1, r2
 8011676:	c7605022 	bmaski      	r2, 28
 801167a:	65c8      	cmphs      	r2, r7
 801167c:	0c02      	bf      	0x8011680	// 8011680 <__pack_d+0x160>
 801167e:	6f0f      	mov      	r12, r3
 8011680:	e46c2001 	andi      	r3, r12, 1
 8011684:	0784      	br      	0x801158c	// 801158c <__pack_d+0x6c>
 8011686:	327f      	movi      	r2, 127
 8011688:	3300      	movi      	r3, 0
 801168a:	6599      	cmplt      	r6, r6
 801168c:	6189      	addc      	r6, r2
 801168e:	61cd      	addc      	r7, r3
 8011690:	4778      	lsli      	r3, r7, 24
 8011692:	4f28      	lsri      	r1, r7, 8
 8011694:	4e08      	lsri      	r0, r6, 8
 8011696:	6c0c      	or      	r0, r3
 8011698:	c4015663 	zext      	r3, r1, 19, 0
 801169c:	6c4f      	mov      	r1, r3
 801169e:	c7605023 	bmaski      	r3, 28
 80116a2:	65cc      	cmphs      	r3, r7
 80116a4:	0fee      	bf      	0x8011680	// 8011680 <__pack_d+0x160>
 80116a6:	6f23      	mov      	r12, r8
 80116a8:	07ec      	br      	0x8011680	// 8011680 <__pack_d+0x160>
 80116aa:	3280      	movi      	r2, 128
 80116ac:	07ee      	br      	0x8011688	// 8011688 <__pack_d+0x168>
	...

080116b0 <__unpack_d>:
 80116b0:	1421      	subi      	r14, r14, 4
 80116b2:	dd6e2000 	st.w      	r11, (r14, 0x0)
 80116b6:	8863      	ld.h      	r3, (r0, 0x6)
 80116b8:	8047      	ld.b      	r2, (r0, 0x7)
 80116ba:	c48355c3 	zext      	r3, r3, 14, 4
 80116be:	d9802001 	ld.w      	r12, (r0, 0x4)
 80116c2:	4a47      	lsri      	r2, r2, 7
 80116c4:	d9a02000 	ld.w      	r13, (r0, 0x0)
 80116c8:	c40c566c 	zext      	r12, r12, 19, 0
 80116cc:	b141      	st.w      	r2, (r1, 0x4)
 80116ce:	e9230025 	bnez      	r3, 0x8011718	// 8011718 <__unpack_d+0x68>
 80116d2:	c58d2423 	or      	r3, r13, r12
 80116d6:	e903003c 	bez      	r3, 0x801174e	// 801174e <__unpack_d+0x9e>
 80116da:	c70d4840 	lsri      	r0, r13, 24
 80116de:	c50c4823 	lsli      	r3, r12, 8
 80116e2:	6cc0      	or      	r3, r0
 80116e4:	3003      	movi      	r0, 3
 80116e6:	c50d4822 	lsli      	r2, r13, 8
 80116ea:	b100      	st.w      	r0, (r1, 0x0)
 80116ec:	c760502d 	bmaski      	r13, 28
 80116f0:	ea0003fe 	movi      	r0, 1022
 80116f4:	6c02      	nor      	r0, r0
 80116f6:	6ecb      	mov      	r11, r2
 80116f8:	6f0f      	mov      	r12, r3
 80116fa:	6489      	cmplt      	r2, r2
 80116fc:	60ad      	addc      	r2, r11
 80116fe:	60f1      	addc      	r3, r12
 8011700:	64f4      	cmphs      	r13, r3
 8011702:	6f03      	mov      	r12, r0
 8011704:	2800      	subi      	r0, 1
 8011706:	0bf8      	bt      	0x80116f6	// 80116f6 <__unpack_d+0x46>
 8011708:	dd812002 	st.w      	r12, (r1, 0x8)
 801170c:	b143      	st.w      	r2, (r1, 0xc)
 801170e:	b164      	st.w      	r3, (r1, 0x10)
 8011710:	d96e2000 	ld.w      	r11, (r14, 0x0)
 8011714:	1401      	addi      	r14, r14, 4
 8011716:	783c      	jmp      	r15
 8011718:	eb4307ff 	cmpnei      	r3, 2047
 801171c:	0c1f      	bf      	0x801175a	// 801175a <__unpack_d+0xaa>
 801171e:	e46313fe 	subi      	r3, r3, 1023
 8011722:	b162      	st.w      	r3, (r1, 0x8)
 8011724:	3303      	movi      	r3, 3
 8011726:	c70d4840 	lsri      	r0, r13, 24
 801172a:	b160      	st.w      	r3, (r1, 0x0)
 801172c:	c50c4823 	lsli      	r3, r12, 8
 8011730:	c50d4822 	lsli      	r2, r13, 8
 8011734:	6cc0      	or      	r3, r0
 8011736:	ea0c0000 	movi      	r12, 0
 801173a:	ea2d1000 	movih      	r13, 4096
 801173e:	6cb0      	or      	r2, r12
 8011740:	6cf4      	or      	r3, r13
 8011742:	b143      	st.w      	r2, (r1, 0xc)
 8011744:	b164      	st.w      	r3, (r1, 0x10)
 8011746:	d96e2000 	ld.w      	r11, (r14, 0x0)
 801174a:	1401      	addi      	r14, r14, 4
 801174c:	783c      	jmp      	r15
 801174e:	3302      	movi      	r3, 2
 8011750:	b160      	st.w      	r3, (r1, 0x0)
 8011752:	d96e2000 	ld.w      	r11, (r14, 0x0)
 8011756:	1401      	addi      	r14, r14, 4
 8011758:	783c      	jmp      	r15
 801175a:	c58d2423 	or      	r3, r13, r12
 801175e:	e9030018 	bez      	r3, 0x801178e	// 801178e <__unpack_d+0xde>
 8011762:	ea230008 	movih      	r3, 8
 8011766:	68f0      	and      	r3, r12
 8011768:	3b40      	cmpnei      	r3, 0
 801176a:	3201      	movi      	r2, 1
 801176c:	c4620c40 	inct      	r3, r2, 0
 8011770:	b160      	st.w      	r3, (r1, 0x0)
 8011772:	c50c482c 	lsli      	r12, r12, 8
 8011776:	c70d4843 	lsri      	r3, r13, 24
 801177a:	6f0c      	or      	r12, r3
 801177c:	c50d482d 	lsli      	r13, r13, 8
 8011780:	c76c282c 	bclri      	r12, r12, 27
 8011784:	dda12003 	st.w      	r13, (r1, 0xc)
 8011788:	dd812004 	st.w      	r12, (r1, 0x10)
 801178c:	07dd      	br      	0x8011746	// 8011746 <__unpack_d+0x96>
 801178e:	3304      	movi      	r3, 4
 8011790:	b160      	st.w      	r3, (r1, 0x0)
 8011792:	07da      	br      	0x8011746	// 8011746 <__unpack_d+0x96>

08011794 <__fpcmp_parts_d>:
 8011794:	9040      	ld.w      	r2, (r0, 0x0)
 8011796:	3301      	movi      	r3, 1
 8011798:	648c      	cmphs      	r3, r2
 801179a:	0830      	bt      	0x80117fa	// 80117fa <__fpcmp_parts_d+0x66>
 801179c:	d9812000 	ld.w      	r12, (r1, 0x0)
 80117a0:	670c      	cmphs      	r3, r12
 80117a2:	082c      	bt      	0x80117fa	// 80117fa <__fpcmp_parts_d+0x66>
 80117a4:	3a44      	cmpnei      	r2, 4
 80117a6:	0c1f      	bf      	0x80117e4	// 80117e4 <__fpcmp_parts_d+0x50>
 80117a8:	eb4c0004 	cmpnei      	r12, 4
 80117ac:	0c14      	bf      	0x80117d4	// 80117d4 <__fpcmp_parts_d+0x40>
 80117ae:	3a42      	cmpnei      	r2, 2
 80117b0:	0c0f      	bf      	0x80117ce	// 80117ce <__fpcmp_parts_d+0x3a>
 80117b2:	eb4c0002 	cmpnei      	r12, 2
 80117b6:	0c1a      	bf      	0x80117ea	// 80117ea <__fpcmp_parts_d+0x56>
 80117b8:	9041      	ld.w      	r2, (r0, 0x4)
 80117ba:	d9812001 	ld.w      	r12, (r1, 0x4)
 80117be:	670a      	cmpne      	r2, r12
 80117c0:	0c1f      	bf      	0x80117fe	// 80117fe <__fpcmp_parts_d+0x6a>
 80117c2:	3000      	movi      	r0, 0
 80117c4:	2800      	subi      	r0, 1
 80117c6:	3a40      	cmpnei      	r2, 0
 80117c8:	c4030c20 	incf      	r0, r3, 0
 80117cc:	783c      	jmp      	r15
 80117ce:	eb4c0002 	cmpnei      	r12, 2
 80117d2:	0c2a      	bf      	0x8011826	// 8011826 <__fpcmp_parts_d+0x92>
 80117d4:	9141      	ld.w      	r2, (r1, 0x4)
 80117d6:	3300      	movi      	r3, 0
 80117d8:	2b00      	subi      	r3, 1
 80117da:	3a40      	cmpnei      	r2, 0
 80117dc:	3001      	movi      	r0, 1
 80117de:	c4030c20 	incf      	r0, r3, 0
 80117e2:	783c      	jmp      	r15
 80117e4:	eb4c0004 	cmpnei      	r12, 4
 80117e8:	0c21      	bf      	0x801182a	// 801182a <__fpcmp_parts_d+0x96>
 80117ea:	9061      	ld.w      	r3, (r0, 0x4)
 80117ec:	3000      	movi      	r0, 0
 80117ee:	3b40      	cmpnei      	r3, 0
 80117f0:	2800      	subi      	r0, 1
 80117f2:	3301      	movi      	r3, 1
 80117f4:	c4030c20 	incf      	r0, r3, 0
 80117f8:	783c      	jmp      	r15
 80117fa:	6c0f      	mov      	r0, r3
 80117fc:	783c      	jmp      	r15
 80117fe:	d9a02002 	ld.w      	r13, (r0, 0x8)
 8011802:	d9812002 	ld.w      	r12, (r1, 0x8)
 8011806:	6771      	cmplt      	r12, r13
 8011808:	0bdd      	bt      	0x80117c2	// 80117c2 <__fpcmp_parts_d+0x2e>
 801180a:	6735      	cmplt      	r13, r12
 801180c:	0c13      	bf      	0x8011832	// 8011832 <__fpcmp_parts_d+0x9e>
 801180e:	3000      	movi      	r0, 0
 8011810:	2800      	subi      	r0, 1
 8011812:	3a40      	cmpnei      	r2, 0
 8011814:	c4030c40 	inct      	r0, r3, 0
 8011818:	07da      	br      	0x80117cc	// 80117cc <__fpcmp_parts_d+0x38>
 801181a:	644c      	cmphs      	r3, r1
 801181c:	0fdd      	bf      	0x80117d6	// 80117d6 <__fpcmp_parts_d+0x42>
 801181e:	64c6      	cmpne      	r1, r3
 8011820:	0803      	bt      	0x8011826	// 8011826 <__fpcmp_parts_d+0x92>
 8011822:	6430      	cmphs      	r12, r0
 8011824:	0fd9      	bf      	0x80117d6	// 80117d6 <__fpcmp_parts_d+0x42>
 8011826:	3000      	movi      	r0, 0
 8011828:	07d2      	br      	0x80117cc	// 80117cc <__fpcmp_parts_d+0x38>
 801182a:	9161      	ld.w      	r3, (r1, 0x4)
 801182c:	9001      	ld.w      	r0, (r0, 0x4)
 801182e:	5b01      	subu      	r0, r3, r0
 8011830:	07ce      	br      	0x80117cc	// 80117cc <__fpcmp_parts_d+0x38>
 8011832:	9064      	ld.w      	r3, (r0, 0x10)
 8011834:	d9802003 	ld.w      	r12, (r0, 0xc)
 8011838:	9103      	ld.w      	r0, (r1, 0xc)
 801183a:	9124      	ld.w      	r1, (r1, 0x10)
 801183c:	64c4      	cmphs      	r1, r3
 801183e:	0c05      	bf      	0x8011848	// 8011848 <__fpcmp_parts_d+0xb4>
 8011840:	644e      	cmpne      	r3, r1
 8011842:	0bec      	bt      	0x801181a	// 801181a <__fpcmp_parts_d+0x86>
 8011844:	6700      	cmphs      	r0, r12
 8011846:	0bea      	bt      	0x801181a	// 801181a <__fpcmp_parts_d+0x86>
 8011848:	3000      	movi      	r0, 0
 801184a:	2800      	subi      	r0, 1
 801184c:	3a40      	cmpnei      	r2, 0
 801184e:	3301      	movi      	r3, 1
 8011850:	c4030c20 	incf      	r0, r3, 0
 8011854:	07bc      	br      	0x80117cc	// 80117cc <__fpcmp_parts_d+0x38>
	...

08011858 <__GI_putchar>:
 8011858:	14d0      	push      	r15
 801185a:	1063      	lrw      	r3, 0x20000120	// 8011864 <__GI_putchar+0xc>
 801185c:	9320      	ld.w      	r1, (r3, 0x0)
 801185e:	e000008f 	bsr      	0x801197c	// 801197c <__GI_putc>
 8011862:	1490      	pop      	r15
 8011864:	20000120 	.long	0x20000120

08011868 <__GI_puts>:
 8011868:	14d1      	push      	r4, r15
 801186a:	1085      	lrw      	r4, 0x20000120	// 801187c <__GI_puts+0x14>
 801186c:	9420      	ld.w      	r1, (r4, 0x0)
 801186e:	e0000009 	bsr      	0x8011880	// 8011880 <__GI_fputs>
 8011872:	9420      	ld.w      	r1, (r4, 0x0)
 8011874:	300a      	movi      	r0, 10
 8011876:	e000246d 	bsr      	0x8016150	// 8016150 <fputc>
 801187a:	1491      	pop      	r4, r15
 801187c:	20000120 	.long	0x20000120

08011880 <__GI_fputs>:
 8011880:	14d5      	push      	r4-r8, r15
 8011882:	6d03      	mov      	r4, r0
 8011884:	6d87      	mov      	r6, r1
 8011886:	e9010018 	bez      	r1, 0x80118b6	// 80118b6 <__GI_fputs+0x36>
 801188a:	e5010017 	addi      	r8, r1, 24
 801188e:	6c23      	mov      	r0, r8
 8011890:	e0000070 	bsr      	0x8011970	// 8011970 <__GI_os_critical_enter>
 8011894:	8400      	ld.b      	r0, (r4, 0x0)
 8011896:	e9000014 	bez      	r0, 0x80118be	// 80118be <__GI_fputs+0x3e>
 801189a:	3500      	movi      	r5, 0
 801189c:	6dd7      	mov      	r7, r5
 801189e:	2f00      	subi      	r7, 1
 80118a0:	0406      	br      	0x80118ac	// 80118ac <__GI_fputs+0x2c>
 80118a2:	2400      	addi      	r4, 1
 80118a4:	8400      	ld.b      	r0, (r4, 0x0)
 80118a6:	2500      	addi      	r5, 1
 80118a8:	e900000c 	bez      	r0, 0x80118c0	// 80118c0 <__GI_fputs+0x40>
 80118ac:	6c5b      	mov      	r1, r6
 80118ae:	e0002451 	bsr      	0x8016150	// 8016150 <fputc>
 80118b2:	65c2      	cmpne      	r0, r7
 80118b4:	0bf7      	bt      	0x80118a2	// 80118a2 <__GI_fputs+0x22>
 80118b6:	3500      	movi      	r5, 0
 80118b8:	2d00      	subi      	r5, 1
 80118ba:	6c17      	mov      	r0, r5
 80118bc:	1495      	pop      	r4-r8, r15
 80118be:	6d43      	mov      	r5, r0
 80118c0:	6c23      	mov      	r0, r8
 80118c2:	e0000059 	bsr      	0x8011974	// 8011974 <__GI_os_critical_exit>
 80118c6:	6c17      	mov      	r0, r5
 80118c8:	1495      	pop      	r4-r8, r15
	...

080118cc <__memset_fast>:
 80118cc:	7444      	zextb      	r1, r1
 80118ce:	e9020023 	bez      	r2, 0x8011914	// 8011914 <__memset_fast+0x48>
 80118d2:	6f43      	mov      	r13, r0
 80118d4:	e5802003 	andi      	r12, r0, 3
 80118d8:	e90c001f 	bez      	r12, 0x8011916	// 8011916 <__memset_fast+0x4a>
 80118dc:	dc2d0000 	st.b      	r1, (r13, 0x0)
 80118e0:	2a00      	subi      	r2, 1
 80118e2:	e9020019 	bez      	r2, 0x8011914	// 8011914 <__memset_fast+0x48>
 80118e6:	e5ad0000 	addi      	r13, r13, 1
 80118ea:	e58d2003 	andi      	r12, r13, 3
 80118ee:	e90c0014 	bez      	r12, 0x8011916	// 8011916 <__memset_fast+0x4a>
 80118f2:	dc2d0000 	st.b      	r1, (r13, 0x0)
 80118f6:	2a00      	subi      	r2, 1
 80118f8:	e902000e 	bez      	r2, 0x8011914	// 8011914 <__memset_fast+0x48>
 80118fc:	e5ad0000 	addi      	r13, r13, 1
 8011900:	e58d2003 	andi      	r12, r13, 3
 8011904:	e90c0009 	bez      	r12, 0x8011916	// 8011916 <__memset_fast+0x4a>
 8011908:	dc2d0000 	st.b      	r1, (r13, 0x0)
 801190c:	2a00      	subi      	r2, 1
 801190e:	e5ad0000 	addi      	r13, r13, 1
 8011912:	0402      	br      	0x8011916	// 8011916 <__memset_fast+0x4a>
 8011914:	783c      	jmp      	r15
 8011916:	4168      	lsli      	r3, r1, 8
 8011918:	6c4c      	or      	r1, r3
 801191a:	4170      	lsli      	r3, r1, 16
 801191c:	6c4c      	or      	r1, r3
 801191e:	3a2f      	cmplti      	r2, 16
 8011920:	080e      	bt      	0x801193c	// 801193c <__memset_fast+0x70>
 8011922:	dc2d2000 	st.w      	r1, (r13, 0x0)
 8011926:	dc2d2001 	st.w      	r1, (r13, 0x4)
 801192a:	dc2d2002 	st.w      	r1, (r13, 0x8)
 801192e:	dc2d2003 	st.w      	r1, (r13, 0xc)
 8011932:	2a0f      	subi      	r2, 16
 8011934:	e5ad000f 	addi      	r13, r13, 16
 8011938:	3a2f      	cmplti      	r2, 16
 801193a:	0ff4      	bf      	0x8011922	// 8011922 <__memset_fast+0x56>
 801193c:	3a23      	cmplti      	r2, 4
 801193e:	0808      	bt      	0x801194e	// 801194e <__memset_fast+0x82>
 8011940:	2a03      	subi      	r2, 4
 8011942:	dc2d2000 	st.w      	r1, (r13, 0x0)
 8011946:	e5ad0003 	addi      	r13, r13, 4
 801194a:	3a23      	cmplti      	r2, 4
 801194c:	0ffa      	bf      	0x8011940	// 8011940 <__memset_fast+0x74>
 801194e:	e902ffe3 	bez      	r2, 0x8011914	// 8011914 <__memset_fast+0x48>
 8011952:	2a00      	subi      	r2, 1
 8011954:	dc2d0000 	st.b      	r1, (r13, 0x0)
 8011958:	e902ffde 	bez      	r2, 0x8011914	// 8011914 <__memset_fast+0x48>
 801195c:	2a00      	subi      	r2, 1
 801195e:	dc2d0001 	st.b      	r1, (r13, 0x1)
 8011962:	e902ffd9 	bez      	r2, 0x8011914	// 8011914 <__memset_fast+0x48>
 8011966:	dc2d0002 	st.b      	r1, (r13, 0x2)
 801196a:	783c      	jmp      	r15

0801196c <__GI_os_critical_open>:
 801196c:	3000      	movi      	r0, 0
 801196e:	783c      	jmp      	r15

08011970 <__GI_os_critical_enter>:
 8011970:	3000      	movi      	r0, 0
 8011972:	783c      	jmp      	r15

08011974 <__GI_os_critical_exit>:
 8011974:	3000      	movi      	r0, 0
 8011976:	783c      	jmp      	r15

08011978 <__GI_os_critical_close>:
 8011978:	3000      	movi      	r0, 0
 801197a:	783c      	jmp      	r15

0801197c <__GI_putc>:
 801197c:	14d0      	push      	r15
 801197e:	e00023e9 	bsr      	0x8016150	// 8016150 <fputc>
 8011982:	1490      	pop      	r15

08011984 <HAL_GPIO_EXTI_Callback>:
}

__attribute__((weak)) void HAL_GPIO_EXTI_Callback(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
{
	UNUSED(GPIO_Pin);
 8011984:	783c      	jmp      	r15
	...

08011988 <HAL_GPIO_EXTI_IRQHandler>:
{
 8011988:	14d0      	push      	r15
	if ((GPIOx->MIS & GPIO_Pin) != 0)
 801198a:	906d      	ld.w      	r3, (r0, 0x34)
 801198c:	68c4      	and      	r3, r1
{
 801198e:	6c87      	mov      	r2, r1
	if ((GPIOx->MIS & GPIO_Pin) != 0)
 8011990:	e9230003 	bnez      	r3, 0x8011996	// 8011996 <HAL_GPIO_EXTI_IRQHandler+0xe>
}
 8011994:	1490      	pop      	r15
		SET_BIT(GPIOx->IC, GPIO_Pin);
 8011996:	906e      	ld.w      	r3, (r0, 0x38)
 8011998:	6c8c      	or      	r2, r3
 801199a:	b04e      	st.w      	r2, (r0, 0x38)
		HAL_GPIO_EXTI_Callback(GPIOx, GPIO_Pin);
 801199c:	e3fffff4 	bsr      	0x8011984	// 8011984 <HAL_GPIO_EXTI_Callback>
}
 80119a0:	1490      	pop      	r15
	...

080119a4 <HAL_InitTick>:
 */
void SystemClock_Get(wm_sys_clk *sysclk)
{
	clk_div_reg clk_div;

	clk_div.w = READ_REG(RCC->CLK_DIV);
 80119a4:	ea234000 	movih      	r3, 16384
 80119a8:	e4630dff 	addi      	r3, r3, 3584
	sysclk->apbclk = sysclk->cpuclk / clk_div.b.BUS2;
}


__attribute__((weak)) HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
{
 80119ac:	6f03      	mov      	r12, r0
	clk_div.w = READ_REG(RCC->CLK_DIV);
 80119ae:	9364      	ld.w      	r3, (r3, 0x10)
	sysclk->cpuclk = W805_PLL_CLK_MHZ/(clk_div.b.CPU);
 80119b0:	748c      	zextb      	r2, r3
 80119b2:	ea0301e0 	movi      	r3, 480
 80119b6:	c4438043 	divs      	r3, r3, r2
	wm_sys_clk sysclk;
	
	SystemClock_Get(&sysclk);
	SysTick_Config(sysclk.cpuclk * UNIT_MHZ / uwTickFreq);
 80119ba:	ea02f424 	movi      	r2, 62500
 80119be:	c4824902 	rotli      	r2, r2, 4
 80119c2:	7cc8      	mult      	r3, r2
 80119c4:	ea0203e8 	movi      	r2, 1000
 80119c8:	c4438023 	divu      	r3, r3, r2
{
    if ((ticks - 1UL) > CORET_LOAD_RELOAD_Msk) {
        return (1UL);                                                   /* Reload value impossible */
    }

    CORET->LOAD = (uint32_t)(ticks - 1UL);                              /* set reload register */
 80119cc:	104f      	lrw      	r2, 0xe000e010	// 8011a08 <HAL_InitTick+0x64>
    if ((ticks - 1UL) > CORET_LOAD_RELOAD_Msk) {
 80119ce:	2b00      	subi      	r3, 1
    CORET->LOAD = (uint32_t)(ticks - 1UL);                              /* set reload register */
 80119d0:	b261      	st.w      	r3, (r2, 0x4)
	clk_div.w = READ_REG(RCC->CLK_DIV);
 80119d2:	3000      	movi      	r0, 0
    CORET->VAL  = 0UL;                                                  /* Load the CORET Counter Value */
    CORET->CTRL = CORET_CTRL_CLKSOURCE_Msk |
 80119d4:	3307      	movi      	r3, 7
    CORET->VAL  = 0UL;                                                  /* Load the CORET Counter Value */
 80119d6:	b202      	st.w      	r0, (r2, 0x8)
    CORET->CTRL = CORET_CTRL_CLKSOURCE_Msk |
 80119d8:	b260      	st.w      	r3, (r2, 0x0)
    VIC->IPR[_IP_IDX(IRQn)] = ((uint32_t)(VIC->IPR[_IP_IDX(IRQn)]  & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
 80119da:	104d      	lrw      	r2, 0xe000e100	// 8011a0c <HAL_InitTick+0x68>
                                 (((priority << (8U - __VIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
 80119dc:	c5cc4823 	lsli      	r3, r12, 14
    VIC->IPR[_IP_IDX(IRQn)] = ((uint32_t)(VIC->IPR[_IP_IDX(IRQn)]  & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
 80119e0:	d82220c6 	ld.w      	r1, (r2, 0x318)
 80119e4:	ea0dff00 	movi      	r13, 65280
 80119e8:	6f76      	nor      	r13, r13
 80119ea:	6874      	and      	r1, r13
                                 (((priority << (8U - __VIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
 80119ec:	c40355e3 	zext      	r3, r3, 15, 0
    VIC->IPR[_IP_IDX(IRQn)] = ((uint32_t)(VIC->IPR[_IP_IDX(IRQn)]  & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
 80119f0:	6cc4      	or      	r3, r1
 80119f2:	dc6220c6 	st.w      	r3, (r2, 0x318)
    VIC->ISER[_IR_IDX(IRQn)] = (uint32_t)(1UL << ((uint32_t)(int32_t)IRQn % 32));
 80119f6:	ea230200 	movih      	r3, 512
 80119fa:	b260      	st.w      	r3, (r2, 0x0)
    VIC->ISSR[_IR_IDX(IRQn)] = (uint32_t)(1UL << ((uint32_t)(int32_t)IRQn % 32));
 80119fc:	dc622050 	st.w      	r3, (r2, 0x140)
	HAL_NVIC_SetPriority(SYS_TICK_IRQn, TickPriority);
	HAL_NVIC_EnableIRQ(SYS_TICK_IRQn);
	uwTickPrio = TickPriority;
 8011a00:	1064      	lrw      	r3, 0x20001388	// 8011a10 <HAL_InitTick+0x6c>
 8011a02:	dd832000 	st.w      	r12, (r3, 0x0)
	return HAL_OK;
}
 8011a06:	783c      	jmp      	r15
 8011a08:	e000e010 	.long	0xe000e010
 8011a0c:	e000e100 	.long	0xe000e100
 8011a10:	20001388 	.long	0x20001388

08011a14 <SystemClock_Config>:
{
 8011a14:	14d0      	push      	r15
	if ((clk < 2) || (clk > 240))
 8011a16:	5867      	subi      	r3, r0, 2
 8011a18:	eb0300ee 	cmphsi      	r3, 239
 8011a1c:	0826      	bt      	0x8011a68	// 8011a68 <SystemClock_Config+0x54>
    RegValue = READ_REG(RCC->CLK_EN);
 8011a1e:	ea224000 	movih      	r2, 16384
 8011a22:	e4420dff 	addi      	r2, r2, 3584
    RegValue &= ~0x3FFFFF;
 8011a26:	ea21ffc0 	movih      	r1, 65472
    RegValue = READ_REG(RCC->CLK_EN);
 8011a2a:	9260      	ld.w      	r3, (r2, 0x0)
    RegValue &= ~0x3FFFFF;
 8011a2c:	68c4      	and      	r3, r1
    RegValue |= 0x802;
 8011a2e:	ec630802 	ori      	r3, r3, 2050
    WRITE_REG(RCC->CLK_EN, RegValue);
 8011a32:	b260      	st.w      	r3, (r2, 0x0)
	WRITE_REG(RCC->BBP_CLK, 0x0F);
 8011a34:	330f      	movi      	r3, 15
 8011a36:	b262      	st.w      	r3, (r2, 0x8)
	RegValue = READ_REG(RCC->CLK_DIV);
 8011a38:	9264      	ld.w      	r3, (r2, 0x10)
	RegValue &= 0xFF000000;
 8011a3a:	ea22ff00 	movih      	r2, 65280
 8011a3e:	68c8      	and      	r3, r2
	if(cpuDiv > 12)
 8011a40:	320c      	movi      	r2, 12
 8011a42:	6408      	cmphs      	r2, r0
	RegValue |= 0x80000000;
 8011a44:	3bbf      	bseti      	r3, 31
	if(cpuDiv > 12)
 8011a46:	0c12      	bf      	0x8011a6a	// 8011a6a <SystemClock_Config+0x56>
		bus2Fac = (wlanDiv*4/cpuDiv)&0xFF;
 8011a48:	c4028022 	divu      	r2, r2, r0
 8011a4c:	4250      	lsli      	r2, r2, 16
 8011a4e:	ea010300 	movi      	r1, 768
 8011a52:	6c0c      	or      	r0, r3
 8011a54:	6c08      	or      	r0, r2
	WRITE_REG(RCC->CLK_DIV, RegValue);
 8011a56:	ea234000 	movih      	r3, 16384
 8011a5a:	e4630dff 	addi      	r3, r3, 3584
	RegValue |= (bus2Fac<<16) | (wlanDiv<<8) | cpuDiv;
 8011a5e:	6c04      	or      	r0, r1
	WRITE_REG(RCC->CLK_DIV, RegValue);
 8011a60:	b304      	st.w      	r0, (r3, 0x10)
	HAL_InitTick(TICK_INT_PRIORITY);
 8011a62:	3007      	movi      	r0, 7
 8011a64:	e3ffffa0 	bsr      	0x80119a4	// 80119a4 <HAL_InitTick>
}
 8011a68:	1490      	pop      	r15
		wlanDiv = cpuDiv/4;
 8011a6a:	4822      	lsri      	r1, r0, 2
 8011a6c:	4128      	lsli      	r1, r1, 8
 8011a6e:	ea220001 	movih      	r2, 1
 8011a72:	07f0      	br      	0x8011a52	// 8011a52 <SystemClock_Config+0x3e>

08011a74 <HAL_IncTick>:

__attribute__((weak)) void HAL_IncTick(void)
{
	uwTick += 1;
 8011a74:	1043      	lrw      	r2, 0x20001384	// 8011a80 <HAL_IncTick+0xc>
 8011a76:	9260      	ld.w      	r3, (r2, 0x0)
 8011a78:	2300      	addi      	r3, 1
 8011a7a:	b260      	st.w      	r3, (r2, 0x0)
}
 8011a7c:	783c      	jmp      	r15
 8011a7e:	0000      	.short	0x0000
 8011a80:	20001384 	.long	0x20001384

08011a84 <HAL_Init>:
#include "wm_hal.h"

HAL_StatusTypeDef HAL_Init(void)
{
 8011a84:	14d0      	push      	r15
	HAL_MspInit();
 8011a86:	e0000005 	bsr      	0x8011a90	// 8011a90 <HAL_MspInit>
	return HAL_OK;
}
 8011a8a:	3000      	movi      	r0, 0
 8011a8c:	1490      	pop      	r15
	...

08011a90 <HAL_MspInit>:
#include "wm_hal.h"

void HAL_MspInit(void)
{

}
 8011a90:	783c      	jmp      	r15
	...

08011a94 <CORET_IRQHandler>:

#include "wm_hal.h"

__attribute__((isr)) void CORET_IRQHandler(void)
{
 8011a94:	1460      	nie
 8011a96:	1462      	ipush
 8011a98:	142e      	subi      	r14, r14, 56
 8011a9a:	d64e1c2d 	stm      	r18-r31, (r14)
 8011a9e:	1428      	subi      	r14, r14, 32
 8011aa0:	f4ee3400 	fstms      	fr0-fr7, (r14)
 8011aa4:	14d0      	push      	r15
	uint32_t temp;
	
	temp = (*(volatile unsigned int *) (0xE000E010));
 8011aa6:	1068      	lrw      	r3, 0xe000e000	// 8011ac4 <CORET_IRQHandler+0x30>
 8011aa8:	9364      	ld.w      	r3, (r3, 0x10)
	UNUSED(temp);
	HAL_IncTick();
 8011aaa:	e3ffffe5 	bsr      	0x8011a74	// 8011a74 <HAL_IncTick>
}
 8011aae:	d9ee2000 	ld.w      	r15, (r14, 0x0)
 8011ab2:	1401      	addi      	r14, r14, 4
 8011ab4:	f4ee3000 	fldms      	fr0-fr7, (r14)
 8011ab8:	1408      	addi      	r14, r14, 32
 8011aba:	d24e1c2d 	ldm      	r18-r31, (r14)
 8011abe:	140e      	addi      	r14, r14, 56
 8011ac0:	1463      	ipop
 8011ac2:	1461      	nir
 8011ac4:	e000e000 	.long	0xe000e000

08011ac8 <GPIOA_IRQHandler>:

__attribute__((isr)) void GPIOA_IRQHandler(void)
{
 8011ac8:	1460      	nie
 8011aca:	1462      	ipush
 8011acc:	142e      	subi      	r14, r14, 56
 8011ace:	d64e1c2d 	stm      	r18-r31, (r14)
 8011ad2:	1428      	subi      	r14, r14, 32
 8011ad4:	f4ee3400 	fstms      	fr0-fr7, (r14)
 8011ad8:	14d0      	push      	r15
 	HAL_GPIO_EXTI_IRQHandler(GPIOA, GPIO_PIN_0);
 8011ada:	3101      	movi      	r1, 1
 8011adc:	1007      	lrw      	r0, 0x40011200	// 8011af8 <GPIOA_IRQHandler+0x30>
 8011ade:	e3ffff55 	bsr      	0x8011988	// 8011988 <HAL_GPIO_EXTI_IRQHandler>
}
 8011ae2:	d9ee2000 	ld.w      	r15, (r14, 0x0)
 8011ae6:	1401      	addi      	r14, r14, 4
 8011ae8:	f4ee3000 	fldms      	fr0-fr7, (r14)
 8011aec:	1408      	addi      	r14, r14, 32
 8011aee:	d24e1c2d 	ldm      	r18-r31, (r14)
 8011af2:	140e      	addi      	r14, r14, 56
 8011af4:	1463      	ipop
 8011af6:	1461      	nir
 8011af8:	40011200 	.long	0x40011200

08011afc <GPIOB_IRQHandler>:

__attribute__((isr)) void GPIOB_IRQHandler(void)
{
 8011afc:	1460      	nie
 8011afe:	1462      	ipush
 8011b00:	142e      	subi      	r14, r14, 56
 8011b02:	d64e1c2d 	stm      	r18-r31, (r14)
 8011b06:	1428      	subi      	r14, r14, 32
 8011b08:	f4ee3400 	fstms      	fr0-fr7, (r14)
 8011b0c:	14d0      	push      	r15
	HAL_GPIO_EXTI_IRQHandler(GPIOB, GPIO_PIN_5);
 8011b0e:	3120      	movi      	r1, 32
 8011b10:	1007      	lrw      	r0, 0x40011400	// 8011b2c <GPIOB_IRQHandler+0x30>
 8011b12:	e3ffff3b 	bsr      	0x8011988	// 8011988 <HAL_GPIO_EXTI_IRQHandler>
}
 8011b16:	d9ee2000 	ld.w      	r15, (r14, 0x0)
 8011b1a:	1401      	addi      	r14, r14, 4
 8011b1c:	f4ee3000 	fldms      	fr0-fr7, (r14)
 8011b20:	1408      	addi      	r14, r14, 32
 8011b22:	d24e1c2d 	ldm      	r18-r31, (r14)
 8011b26:	140e      	addi      	r14, r14, 56
 8011b28:	1463      	ipop
 8011b2a:	1461      	nir
 8011b2c:	40011400 	.long	0x40011400

08011b30 <core_list_mergesort.constprop.2>:
core_list_mergesort(list_head *list, list_cmp cmp, core_results *res)
{
    list_head *p, *q, *e, *tail;
    ee_s32     insize, nmerges, psize, qsize, i;

    insize = 1;
 8011b30:	ea150001 	movi      	r21, 1
        list = NULL;
        tail = NULL;

        nmerges = 0; /* count number of merges we do in this pass */

        while (p)
 8011b34:	ea180000 	movi      	r24, 0
 8011b38:	e9000071 	bez      	r0, 0x8011c1a	// 8011c1a <core_list_mergesort.constprop.2+0xea>
 8011b3c:	ea160000 	movi      	r22, 0
 8011b40:	c4164821 	lsli      	r1, r22, 0
 8011b44:	c4164837 	lsli      	r23, r22, 0
        {
            nmerges++; /* there exists a merge to be done */
 8011b48:	e6f70000 	addi      	r23, r23, 1
 8011b4c:	6cc3      	mov      	r3, r0
            /* step `insize' places along from p */
            q     = p;
            psize = 0;
 8011b4e:	ea0c0000 	movi      	r12, 0
            for (i = 0; i < insize; i++)
            {
                psize++;
                q = q->next;
 8011b52:	9360      	ld.w      	r3, (r3, 0x0)
                psize++;
 8011b54:	e58c0000 	addi      	r12, r12, 1
                if (!q)
 8011b58:	e9030005 	bez      	r3, 0x8011b62	// 8011b62 <core_list_mergesort.constprop.2+0x32>
            for (i = 0; i < insize; i++)
 8011b5c:	c6ac0480 	cmpne      	r12, r21
 8011b60:	0bf9      	bt      	0x8011b52	// 8011b52 <core_list_mergesort.constprop.2+0x22>
                {
                    tail->next = e;
                }
                else
                {
                    list = e;
 8011b62:	c415482d 	lsli      	r13, r21, 0
 8011b66:	0435      	br      	0x8011bd0	// 8011bd0 <core_list_mergesort.constprop.2+0xa0>
                else if (qsize == 0 || !q)
 8011b68:	e90d0042 	bez      	r13, 0x8011bec	// 8011bec <core_list_mergesort.constprop.2+0xbc>
 8011b6c:	e9030040 	bez      	r3, 0x8011bec	// 8011bec <core_list_mergesort.constprop.2+0xbc>
                else if (cmp(p->info, q->info, res) <= 0)
 8011b70:	da802001 	ld.w      	r20, (r0, 0x4)
        a->data16 = (a->data16 & 0xff00) | (0x00ff & (a->data16 >> 8));
 8011b74:	ea190000 	movi      	r25, 0
 8011b78:	da541000 	ld.h      	r18, (r20, 0x0)
 8011b7c:	c41259e2 	sext      	r2, r18, 15, 0
 8011b80:	e73910ff 	subi      	r25, r25, 256
 8011b84:	c51255f2 	zext      	r18, r18, 15, 8
 8011b88:	c7222022 	and      	r2, r2, r25
                else if (cmp(p->info, q->info, res) <= 0)
 8011b8c:	da632001 	ld.w      	r19, (r3, 0x4)
        a->data16 = (a->data16 & 0xff00) | (0x00ff & (a->data16 >> 8));
 8011b90:	c6422422 	or      	r2, r2, r18
 8011b94:	dc541000 	st.h      	r2, (r20, 0x0)
        b->data16 = (b->data16 & 0xff00) | (0x00ff & (b->data16 >> 8));
 8011b98:	da531000 	ld.h      	r18, (r19, 0x0)
 8011b9c:	c41259e2 	sext      	r2, r18, 15, 0
 8011ba0:	c7222022 	and      	r2, r2, r25
 8011ba4:	c51255f2 	zext      	r18, r18, 15, 8
 8011ba8:	c6422422 	or      	r2, r2, r18
 8011bac:	dc531000 	st.h      	r2, (r19, 0x0)
    return a->idx - b->idx;
 8011bb0:	da535001 	ld.hs      	r18, (r19, 0x2)
 8011bb4:	d8545001 	ld.hs      	r2, (r20, 0x2)
 8011bb8:	c6420082 	subu      	r2, r2, r18
                else if (cmp(p->info, q->info, res) <= 0)
 8011bbc:	e9620018 	blsz      	r2, 0x8011bec	// 8011bec <core_list_mergesort.constprop.2+0xbc>
                    qsize--;
 8011bc0:	6c8f      	mov      	r2, r3
 8011bc2:	e5ad1000 	subi      	r13, r13, 1
                    q = q->next;
 8011bc6:	9360      	ld.w      	r3, (r3, 0x0)
                if (tail)
 8011bc8:	e9010018 	bez      	r1, 0x8011bf8	// 8011bf8 <core_list_mergesort.constprop.2+0xc8>
                    tail->next = e;
 8011bcc:	b140      	st.w      	r2, (r1, 0x0)
                    list = e;
 8011bce:	6c4b      	mov      	r1, r2
            while (psize > 0 || (qsize > 0 && q))
 8011bd0:	e92cffcc 	bnez      	r12, 0x8011b68	// 8011b68 <core_list_mergesort.constprop.2+0x38>
 8011bd4:	e90d0015 	bez      	r13, 0x8011bfe	// 8011bfe <core_list_mergesort.constprop.2+0xce>
 8011bd8:	e923fff4 	bnez      	r3, 0x8011bc0	// 8011bc0 <core_list_mergesort.constprop.2+0x90>
        }

        tail->next = NULL;

        /* If we have done only one merge, we're finished. */
        if (nmerges <= 1) /* allow for nmerges==0, the empty list case */
 8011bdc:	eb570001 	cmpnei      	r23, 1
        tail->next = NULL;
 8011be0:	df012000 	st.w      	r24, (r1, 0x0)
        if (nmerges <= 1) /* allow for nmerges==0, the empty list case */
 8011be4:	0815      	bt      	0x8011c0e	// 8011c0e <core_list_mergesort.constprop.2+0xde>
        insize *= 2;
    }
#if COMPILER_REQUIRES_SORT_RETURN
    return list;
#endif
}
 8011be6:	c4164820 	lsli      	r0, r22, 0
 8011bea:	783c      	jmp      	r15
                    psize--;
 8011bec:	6c83      	mov      	r2, r0
 8011bee:	e58c1000 	subi      	r12, r12, 1
                    p = p->next;
 8011bf2:	9000      	ld.w      	r0, (r0, 0x0)
                if (tail)
 8011bf4:	e921ffec 	bnez      	r1, 0x8011bcc	// 8011bcc <core_list_mergesort.constprop.2+0x9c>
                    list = e;
 8011bf8:	c4024836 	lsli      	r22, r2, 0
 8011bfc:	07e9      	br      	0x8011bce	// 8011bce <core_list_mergesort.constprop.2+0x9e>
 8011bfe:	6c0f      	mov      	r0, r3
        while (p)
 8011c00:	e923ffa4 	bnez      	r3, 0x8011b48	// 8011b48 <core_list_mergesort.constprop.2+0x18>
        if (nmerges <= 1) /* allow for nmerges==0, the empty list case */
 8011c04:	eb570001 	cmpnei      	r23, 1
        tail->next = NULL;
 8011c08:	df012000 	st.w      	r24, (r1, 0x0)
        if (nmerges <= 1) /* allow for nmerges==0, the empty list case */
 8011c0c:	0fed      	bf      	0x8011be6	// 8011be6 <core_list_mergesort.constprop.2+0xb6>
        insize *= 2;
 8011c0e:	c4164820 	lsli      	r0, r22, 0
 8011c12:	c6b50035 	addu      	r21, r21, r21
        while (p)
 8011c16:	e920ff93 	bnez      	r0, 0x8011b3c	// 8011b3c <core_list_mergesort.constprop.2+0xc>
        list = NULL;
 8011c1a:	c4004836 	lsli      	r22, r0, 0
        tail->next = NULL;
 8011c1e:	b000      	st.w      	r0, (r0, 0x0)
}
 8011c20:	c4164820 	lsli      	r0, r22, 0
 8011c24:	783c      	jmp      	r15
	...

08011c28 <core_bench_list>:
{
 8011c28:	ebe00058 	push      	r4-r11, r15, r16-r17
 8011c2c:	1429      	subi      	r14, r14, 36
    ee_s16     find_num = res->seed3;
 8011c2e:	da805002 	ld.hs      	r20, (r0, 0x4)
{
 8011c32:	c4004830 	lsli      	r16, r0, 0
    list_head *list     = res->list;
 8011c36:	da202009 	ld.w      	r17, (r0, 0x24)
    for (i = 0; i < find_num; i++)
 8011c3a:	6d07      	mov      	r4, r1
 8011c3c:	e97401e3 	blsz      	r20, 0x8012002	// 8012002 <core_bench_list+0x3da>
 8011c40:	ea0c0000 	movi      	r12, 0
 8011c44:	c40c4835 	lsli      	r21, r12, 0
 8011c48:	c40c4832 	lsli      	r18, r12, 0
 8011c4c:	c40c4833 	lsli      	r19, r12, 0
        while (list && (list->info->idx != info->idx))
 8011c50:	c40c4837 	lsli      	r23, r12, 0
        info.data16 = (i & 0xff);
 8011c54:	74f0      	zextb      	r3, r12
 8011c56:	b866      	st.w      	r3, (r14, 0x18)
    if (info->idx >= 0)
 8011c58:	e98401a0 	blz      	r4, 0x8011f98	// 8011f98 <core_bench_list+0x370>
        while (list && (list->info->idx != info->idx))
 8011c5c:	e91101b2 	bez      	r17, 0x8011fc0	// 8011fc0 <core_bench_list+0x398>
 8011c60:	d8712001 	ld.w      	r3, (r17, 0x4)
 8011c64:	d8635001 	ld.hs      	r3, (r3, 0x2)
 8011c68:	650e      	cmpne      	r3, r4
 8011c6a:	c4114823 	lsli      	r3, r17, 0
 8011c6e:	0807      	bt      	0x8011c7c	// 8011c7c <core_bench_list+0x54>
 8011c70:	0409      	br      	0x8011c82	// 8011c82 <core_bench_list+0x5a>
 8011c72:	9341      	ld.w      	r2, (r3, 0x4)
 8011c74:	d8425001 	ld.hs      	r2, (r2, 0x2)
 8011c78:	650a      	cmpne      	r2, r4
 8011c7a:	0c04      	bf      	0x8011c82	// 8011c82 <core_bench_list+0x5a>
            list = list->next;
 8011c7c:	9360      	ld.w      	r3, (r3, 0x0)
        while (list && (list->info->idx != info->idx))
 8011c7e:	e923fffa 	bnez      	r3, 0x8011c72	// 8011c72 <core_bench_list+0x4a>
 8011c82:	3000      	movi      	r0, 0
 8011c84:	0405      	br      	0x8011c8e	// 8011c8e <core_bench_list+0x66>
    while (list)
 8011c86:	c4114820 	lsli      	r0, r17, 0
 8011c8a:	c4024831 	lsli      	r17, r2, 0
        tmp        = list->next;
 8011c8e:	d8512000 	ld.w      	r2, (r17, 0x0)
        list->next = next;
 8011c92:	dc112000 	st.w      	r0, (r17, 0x0)
    while (list)
 8011c96:	e922fff8 	bnez      	r2, 0x8011c86	// 8011c86 <core_bench_list+0x5e>
        if (this_find == NULL)
 8011c9a:	e9030197 	bez      	r3, 0x8011fc8	// 8011fc8 <core_bench_list+0x3a0>
            if (this_find->info->data16 & 0x1) /* use found value */
 8011c9e:	9341      	ld.w      	r2, (r3, 0x4)
            found++;
 8011ca0:	e6520000 	addi      	r18, r18, 1
            if (this_find->info->data16 & 0x1) /* use found value */
 8011ca4:	8a40      	ld.h      	r2, (r2, 0x0)
 8011ca6:	740b      	sexth      	r0, r2
 8011ca8:	e4422001 	andi      	r2, r2, 1
            found++;
 8011cac:	c41255f2 	zext      	r18, r18, 15, 0
            if (this_find->info->data16 & 0x1) /* use found value */
 8011cb0:	e9020008 	bez      	r2, 0x8011cc0	// 8011cc0 <core_bench_list+0x98>
                retval += (this_find->info->data16 >> 9) & 1;
 8011cb4:	c5205520 	zext      	r0, r0, 9, 9
 8011cb8:	c4130022 	addu      	r2, r19, r0
 8011cbc:	c40255f3 	zext      	r19, r2, 15, 0
            if (this_find->next != NULL)
 8011cc0:	9340      	ld.w      	r2, (r3, 0x0)
 8011cc2:	e9020009 	bez      	r2, 0x8011cd4	// 8011cd4 <core_bench_list+0xac>
                this_find->next = finder->next;
 8011cc6:	9200      	ld.w      	r0, (r2, 0x0)
 8011cc8:	b300      	st.w      	r0, (r3, 0x0)
                finder->next    = list->next;
 8011cca:	d8712000 	ld.w      	r3, (r17, 0x0)
 8011cce:	b260      	st.w      	r3, (r2, 0x0)
                list->next      = finder;
 8011cd0:	dc512000 	st.w      	r2, (r17, 0x0)
        if (info.idx >= 0)
 8011cd4:	e9840004 	blz      	r4, 0x8011cdc	// 8011cdc <core_bench_list+0xb4>
            info.idx++;
 8011cd8:	2400      	addi      	r4, 1
 8011cda:	7513      	sexth      	r4, r4
 8011cdc:	e58c0000 	addi      	r12, r12, 1
 8011ce0:	7733      	sexth      	r12, r12
    for (i = 0; i < find_num; i++)
 8011ce2:	c5940480 	cmpne      	r20, r12
 8011ce6:	0bb7      	bt      	0x8011c54	// 8011c54 <core_bench_list+0x2c>
 8011ce8:	c4524823 	lsli      	r3, r18, 2
 8011cec:	c6a30083 	subu      	r3, r3, r21
 8011cf0:	c4730023 	addu      	r3, r19, r3
 8011cf4:	74cd      	zexth      	r3, r3
 8011cf6:	b865      	st.w      	r3, (r14, 0x14)
    if (finder_idx > 0)
 8011cf8:	e9610176 	blsz      	r1, 0x8011fe4	// 8011fe4 <core_bench_list+0x3bc>
 8011cfc:	3301      	movi      	r3, 1
 8011cfe:	b862      	st.w      	r3, (r14, 0x8)
                retval = core_bench_matrix(&(res->mat), dtype, res->crc);
 8011d00:	e4700027 	addi      	r3, r16, 40
 8011d04:	b867      	st.w      	r3, (r14, 0x1c)
        while (p)
 8011d06:	e9110181 	bez      	r17, 0x8012008	// 8012008 <core_bench_list+0x3e0>
 8011d0a:	3300      	movi      	r3, 0
 8011d0c:	b864      	st.w      	r3, (r14, 0x10)
 8011d0e:	6ecf      	mov      	r11, r3
 8011d10:	b868      	st.w      	r3, (r14, 0x20)
            nmerges++; /* there exists a merge to be done */
 8011d12:	9868      	ld.w      	r3, (r14, 0x20)
 8011d14:	2300      	addi      	r3, 1
 8011d16:	b868      	st.w      	r3, (r14, 0x20)
 8011d18:	c411482a 	lsli      	r10, r17, 0
            psize = 0;
 8011d1c:	3700      	movi      	r7, 0
                q = q->next;
 8011d1e:	d94a2000 	ld.w      	r10, (r10, 0x0)
                psize++;
 8011d22:	2700      	addi      	r7, 1
                if (!q)
 8011d24:	e90a0005 	bez      	r10, 0x8011d2e	// 8011d2e <core_bench_list+0x106>
            for (i = 0; i < insize; i++)
 8011d28:	9862      	ld.w      	r3, (r14, 0x8)
 8011d2a:	64de      	cmpne      	r7, r3
 8011d2c:	0bf9      	bt      	0x8011d1e	// 8011d1e <core_bench_list+0xf6>
                    list = e;
 8011d2e:	d92e2002 	ld.w      	r9, (r14, 0x8)
 8011d32:	047f      	br      	0x8011e30	// 8011e30 <core_bench_list+0x208>
                else if (qsize == 0 || !q)
 8011d34:	e90900d2 	bez      	r9, 0x8011ed8	// 8011ed8 <core_bench_list+0x2b0>
 8011d38:	e90a00d0 	bez      	r10, 0x8011ed8	// 8011ed8 <core_bench_list+0x2b0>
                else if (cmp(p->info, q->info, res) <= 0)
 8011d3c:	d8d12001 	ld.w      	r6, (r17, 0x4)
 8011d40:	d8aa2001 	ld.w      	r5, (r10, 0x4)
    ee_s16 data = *pdata;
 8011d44:	daa65000 	ld.hs      	r21, (r6, 0x0)
    if (optype) /* if cached, use cache */
 8011d48:	e4752080 	andi      	r3, r21, 128
 8011d4c:	e92300cf 	bnez      	r3, 0x8011eea	// 8011eea <core_bench_list+0x2c2>
        ee_s16 dtype
 8011d50:	c47554c1 	zext      	r1, r21, 6, 3
        dtype |= dtype << 4; /* replicate the lower 4 bits to get an 8b value */
 8011d54:	4164      	lsli      	r3, r1, 4
 8011d56:	6c4c      	or      	r1, r3
        switch (flag)
 8011d58:	e4752007 	andi      	r3, r21, 7
 8011d5c:	e90300d5 	bez      	r3, 0x8011f06	// 8011f06 <core_bench_list+0x2de>
 8011d60:	3b41      	cmpnei      	r3, 1
 8011d62:	08cf      	bt      	0x8011f00	// 8011f00 <core_bench_list+0x2d8>
                retval = core_bench_matrix(&(res->mat), dtype, res->crc);
 8011d64:	d850101c 	ld.h      	r2, (r16, 0x38)
 8011d68:	9807      	ld.w      	r0, (r14, 0x1c)
 8011d6a:	deae2003 	st.w      	r21, (r14, 0xc)
 8011d6e:	e00007a9 	bsr      	0x8012cc0	// 8012cc0 <core_bench_matrix>
                if (res->crcmatrix == 0)
 8011d72:	d870101e 	ld.h      	r3, (r16, 0x3c)
                retval = core_bench_matrix(&(res->mat), dtype, res->crc);
 8011d76:	7603      	sexth      	r8, r0
                if (res->crcmatrix == 0)
 8011d78:	daae2003 	ld.w      	r21, (r14, 0xc)
 8011d7c:	e9230004 	bnez      	r3, 0x8011d84	// 8011d84 <core_bench_list+0x15c>
                    res->crcmatrix = retval;
 8011d80:	dc10101e 	st.h      	r0, (r16, 0x3c)
        res->crc = crcu16(retval, res->crc);
 8011d84:	7421      	zexth      	r0, r8
 8011d86:	d830101c 	ld.h      	r1, (r16, 0x38)
 8011d8a:	deae2003 	st.w      	r21, (r14, 0xc)
 8011d8e:	e0000ab5 	bsr      	0x80132f8	// 80132f8 <crcu16>
        *pdata = (data & 0xff00) | 0x0080 | retval; /* cache the result */
 8011d92:	3300      	movi      	r3, 0
 8011d94:	2bff      	subi      	r3, 256
 8011d96:	daae2003 	ld.w      	r21, (r14, 0xc)
 8011d9a:	c4752035 	and      	r21, r21, r3
        retval &= 0x007f;
 8011d9e:	e508207f 	andi      	r8, r8, 127
        *pdata = (data & 0xff00) | 0x0080 | retval; /* cache the result */
 8011da2:	eeb50080 	ori      	r21, r21, 128
 8011da6:	c6a82435 	or      	r21, r8, r21
        res->crc = crcu16(retval, res->crc);
 8011daa:	dc10101c 	st.h      	r0, (r16, 0x38)
        *pdata = (data & 0xff00) | 0x0080 | retval; /* cache the result */
 8011dae:	dea61000 	st.h      	r21, (r6, 0x0)
    ee_s16 data = *pdata;
 8011db2:	d8c55000 	ld.hs      	r6, (r5, 0x0)
    if (optype) /* if cached, use cache */
 8011db6:	e4662080 	andi      	r3, r6, 128
 8011dba:	e92300a0 	bnez      	r3, 0x8011efa	// 8011efa <core_bench_list+0x2d2>
        ee_s16 dtype
 8011dbe:	c46654c1 	zext      	r1, r6, 6, 3
        dtype |= dtype << 4; /* replicate the lower 4 bits to get an 8b value */
 8011dc2:	4164      	lsli      	r3, r1, 4
 8011dc4:	6c4c      	or      	r1, r3
        switch (flag)
 8011dc6:	e4662007 	andi      	r3, r6, 7
 8011dca:	e90300bd 	bez      	r3, 0x8011f44	// 8011f44 <core_bench_list+0x31c>
 8011dce:	3b41      	cmpnei      	r3, 1
 8011dd0:	08b8      	bt      	0x8011f40	// 8011f40 <core_bench_list+0x318>
                retval = core_bench_matrix(&(res->mat), dtype, res->crc);
 8011dd2:	d850101c 	ld.h      	r2, (r16, 0x38)
 8011dd6:	9807      	ld.w      	r0, (r14, 0x1c)
 8011dd8:	e0000774 	bsr      	0x8012cc0	// 8012cc0 <core_bench_matrix>
                if (res->crcmatrix == 0)
 8011ddc:	d850101e 	ld.h      	r2, (r16, 0x3c)
                retval = core_bench_matrix(&(res->mat), dtype, res->crc);
 8011de0:	74c3      	sexth      	r3, r0
                if (res->crcmatrix == 0)
 8011de2:	e9220004 	bnez      	r2, 0x8011dea	// 8011dea <core_bench_list+0x1c2>
                    res->crcmatrix = retval;
 8011de6:	dc10101e 	st.h      	r0, (r16, 0x3c)
        res->crc = crcu16(retval, res->crc);
 8011dea:	740d      	zexth      	r0, r3
 8011dec:	d830101c 	ld.h      	r1, (r16, 0x38)
 8011df0:	b863      	st.w      	r3, (r14, 0xc)
 8011df2:	e0000a83 	bsr      	0x80132f8	// 80132f8 <crcu16>
        *pdata = (data & 0xff00) | 0x0080 | retval; /* cache the result */
 8011df6:	3200      	movi      	r2, 0
 8011df8:	2aff      	subi      	r2, 256
        retval &= 0x007f;
 8011dfa:	9863      	ld.w      	r3, (r14, 0xc)
        *pdata = (data & 0xff00) | 0x0080 | retval; /* cache the result */
 8011dfc:	c4462035 	and      	r21, r6, r2
        retval &= 0x007f;
 8011e00:	e463207f 	andi      	r3, r3, 127
        *pdata = (data & 0xff00) | 0x0080 | retval; /* cache the result */
 8011e04:	eeb50080 	ori      	r21, r21, 128
 8011e08:	c6a32435 	or      	r21, r3, r21
        res->crc = crcu16(retval, res->crc);
 8011e0c:	dc10101c 	st.h      	r0, (r16, 0x38)
        *pdata = (data & 0xff00) | 0x0080 | retval; /* cache the result */
 8011e10:	dea51000 	st.h      	r21, (r5, 0x0)
    return val1 - val2;
 8011e14:	c4680097 	subu      	r23, r8, r3
                else if (cmp(p->info, q->info, res) <= 0)
 8011e18:	e9770060 	blsz      	r23, 0x8011ed8	// 8011ed8 <core_bench_list+0x2b0>
                    qsize--;
 8011e1c:	6ceb      	mov      	r3, r10
 8011e1e:	e5291000 	subi      	r9, r9, 1
                    q = q->next;
 8011e22:	d94a2000 	ld.w      	r10, (r10, 0x0)
                if (tail)
 8011e26:	e90b0060 	bez      	r11, 0x8011ee6	// 8011ee6 <core_bench_list+0x2be>
                    tail->next = e;
 8011e2a:	dc6b2000 	st.w      	r3, (r11, 0x0)
                    list = e;
 8011e2e:	6ecf      	mov      	r11, r3
            while (psize > 0 || (qsize > 0 && q))
 8011e30:	e927ff82 	bnez      	r7, 0x8011d34	// 8011d34 <core_bench_list+0x10c>
 8011e34:	e90900a1 	bez      	r9, 0x8011f76	// 8011f76 <core_bench_list+0x34e>
 8011e38:	e92afff2 	bnez      	r10, 0x8011e1c	// 8011e1c <core_bench_list+0x1f4>
        tail->next = NULL;
 8011e3c:	3300      	movi      	r3, 0
 8011e3e:	dc6b2000 	st.w      	r3, (r11, 0x0)
        if (nmerges <= 1) /* allow for nmerges==0, the empty list case */
 8011e42:	9868      	ld.w      	r3, (r14, 0x20)
 8011e44:	3b41      	cmpnei      	r3, 1
 8011e46:	08a2      	bt      	0x8011f8a	// 8011f8a <core_bench_list+0x362>
 8011e48:	da2e2004 	ld.w      	r17, (r14, 0x10)
 8011e4c:	d8712000 	ld.w      	r3, (r17, 0x0)
 8011e50:	93c0      	ld.w      	r6, (r3, 0x0)
 8011e52:	9620      	ld.w      	r1, (r6, 0x0)
    tmp        = item->info;
 8011e54:	9341      	ld.w      	r2, (r3, 0x4)
    item->info = ret->info;
 8011e56:	9601      	ld.w      	r0, (r6, 0x4)
 8011e58:	b301      	st.w      	r0, (r3, 0x4)
    ret->info  = tmp;
 8011e5a:	b641      	st.w      	r2, (r6, 0x4)
    item->next = item->next->next;
 8011e5c:	b320      	st.w      	r1, (r3, 0x0)
    ret->next  = NULL;
 8011e5e:	3300      	movi      	r3, 0
 8011e60:	b660      	st.w      	r3, (r6, 0x0)
    if (info->idx >= 0)
 8011e62:	c4114825 	lsli      	r5, r17, 0
 8011e66:	e98400c4 	blz      	r4, 0x8011fee	// 8011fee <core_bench_list+0x3c6>
        while (list && (list->info->idx != info->idx))
 8011e6a:	9561      	ld.w      	r3, (r5, 0x4)
 8011e6c:	d8635001 	ld.hs      	r3, (r3, 0x2)
 8011e70:	650e      	cmpne      	r3, r4
 8011e72:	0c09      	bf      	0x8011e84	// 8011e84 <core_bench_list+0x25c>
            list = list->next;
 8011e74:	95a0      	ld.w      	r5, (r5, 0x0)
        while (list && (list->info->idx != info->idx))
 8011e76:	e925fffa 	bnez      	r5, 0x8011e6a	// 8011e6a <core_bench_list+0x242>
        finder = list->next;
 8011e7a:	d8712000 	ld.w      	r3, (r17, 0x0)
 8011e7e:	6d4f      	mov      	r5, r3
    while (finder)
 8011e80:	e9030010 	bez      	r3, 0x8011ea0	// 8011ea0 <core_bench_list+0x278>
        retval = crc16(list->info->data16, retval);
 8011e84:	d8712001 	ld.w      	r3, (r17, 0x4)
 8011e88:	9825      	ld.w      	r1, (r14, 0x14)
 8011e8a:	d8035000 	ld.hs      	r0, (r3, 0x0)
 8011e8e:	e0000c4f 	bsr      	0x801372c	// 801372c <crc16>
        finder = finder->next;
 8011e92:	95a0      	ld.w      	r5, (r5, 0x0)
        retval = crc16(list->info->data16, retval);
 8011e94:	b805      	st.w      	r0, (r14, 0x14)
    while (finder)
 8011e96:	e925fff7 	bnez      	r5, 0x8011e84	// 8011e84 <core_bench_list+0x25c>
 8011e9a:	9641      	ld.w      	r2, (r6, 0x4)
 8011e9c:	d8712000 	ld.w      	r3, (r17, 0x0)
    item_removed->info  = item_modified->info;
 8011ea0:	9321      	ld.w      	r1, (r3, 0x4)
 8011ea2:	b621      	st.w      	r1, (r6, 0x4)
    item_modified->info = tmp;
 8011ea4:	b341      	st.w      	r2, (r3, 0x4)
    item_removed->next  = item_modified->next;
 8011ea6:	9340      	ld.w      	r2, (r3, 0x0)
 8011ea8:	b640      	st.w      	r2, (r6, 0x0)
    list = core_list_mergesort(list, cmp_idx, NULL);
 8011eaa:	c4114820 	lsli      	r0, r17, 0
    item_modified->next = item_removed;
 8011eae:	b3c0      	st.w      	r6, (r3, 0x0)
    list = core_list_mergesort(list, cmp_idx, NULL);
 8011eb0:	e3fffe40 	bsr      	0x8011b30	// 8011b30 <core_list_mergesort.constprop.2>
 8011eb4:	6d43      	mov      	r5, r0
    finder = list->next;
 8011eb6:	9080      	ld.w      	r4, (r0, 0x0)
    while (finder)
 8011eb8:	e904000c 	bez      	r4, 0x8011ed0	// 8011ed0 <core_bench_list+0x2a8>
        retval = crc16(list->info->data16, retval);
 8011ebc:	9561      	ld.w      	r3, (r5, 0x4)
 8011ebe:	9825      	ld.w      	r1, (r14, 0x14)
 8011ec0:	d8035000 	ld.hs      	r0, (r3, 0x0)
 8011ec4:	e0000c34 	bsr      	0x801372c	// 801372c <crc16>
        finder = finder->next;
 8011ec8:	9480      	ld.w      	r4, (r4, 0x0)
        retval = crc16(list->info->data16, retval);
 8011eca:	b805      	st.w      	r0, (r14, 0x14)
    while (finder)
 8011ecc:	e924fff8 	bnez      	r4, 0x8011ebc	// 8011ebc <core_bench_list+0x294>
}
 8011ed0:	9805      	ld.w      	r0, (r14, 0x14)
 8011ed2:	1409      	addi      	r14, r14, 36
 8011ed4:	ebc00058 	pop      	r4-r11, r15, r16-r17
                    psize--;
 8011ed8:	c4114823 	lsli      	r3, r17, 0
 8011edc:	2f00      	subi      	r7, 1
                    p = p->next;
 8011ede:	da312000 	ld.w      	r17, (r17, 0x0)
                if (tail)
 8011ee2:	e92bffa4 	bnez      	r11, 0x8011e2a	// 8011e2a <core_bench_list+0x202>
                    list = e;
 8011ee6:	b864      	st.w      	r3, (r14, 0x10)
 8011ee8:	07a3      	br      	0x8011e2e	// 8011e2e <core_bench_list+0x206>
    ee_s16 data = *pdata;
 8011eea:	d8c55000 	ld.hs      	r6, (r5, 0x0)
    if (optype) /* if cached, use cache */
 8011eee:	e4662080 	andi      	r3, r6, 128
        return (data & 0x007f);
 8011ef2:	e515207f 	andi      	r8, r21, 127
    if (optype) /* if cached, use cache */
 8011ef6:	e903ff64 	bez      	r3, 0x8011dbe	// 8011dbe <core_bench_list+0x196>
        return (data & 0x007f);
 8011efa:	e466207f 	andi      	r3, r6, 127
 8011efe:	078b      	br      	0x8011e14	// 8011e14 <core_bench_list+0x1ec>
        switch (flag)
 8011f00:	c4154828 	lsli      	r8, r21, 0
 8011f04:	0740      	br      	0x8011d84	// 8011d84 <core_bench_list+0x15c>
                retval = core_bench_state(res->size,
 8011f06:	d810101c 	ld.h      	r0, (r16, 0x38)
 8011f0a:	b801      	st.w      	r0, (r14, 0x4)
 8011f0c:	3022      	movi      	r0, 34
 8011f0e:	f801cca1 	max.s32      	r1, r1, r0
 8011f12:	d8705001 	ld.hs      	r3, (r16, 0x2)
 8011f16:	b820      	st.w      	r1, (r14, 0x0)
 8011f18:	d8505000 	ld.hs      	r2, (r16, 0x0)
 8011f1c:	d8302005 	ld.w      	r1, (r16, 0x14)
 8011f20:	d8102006 	ld.w      	r0, (r16, 0x18)
 8011f24:	deae2003 	st.w      	r21, (r14, 0xc)
 8011f28:	e000094a 	bsr      	0x80131bc	// 80131bc <core_bench_state>
                if (res->crcstate == 0)
 8011f2c:	d870101f 	ld.h      	r3, (r16, 0x3e)
                retval = core_bench_state(res->size,
 8011f30:	7603      	sexth      	r8, r0
                if (res->crcstate == 0)
 8011f32:	daae2003 	ld.w      	r21, (r14, 0xc)
 8011f36:	e923ff27 	bnez      	r3, 0x8011d84	// 8011d84 <core_bench_list+0x15c>
                    res->crcstate = retval;
 8011f3a:	dc10101f 	st.h      	r0, (r16, 0x3e)
 8011f3e:	0723      	br      	0x8011d84	// 8011d84 <core_bench_list+0x15c>
        switch (flag)
 8011f40:	6cdb      	mov      	r3, r6
 8011f42:	0754      	br      	0x8011dea	// 8011dea <core_bench_list+0x1c2>
                retval = core_bench_state(res->size,
 8011f44:	d810101c 	ld.h      	r0, (r16, 0x38)
 8011f48:	b801      	st.w      	r0, (r14, 0x4)
 8011f4a:	3022      	movi      	r0, 34
 8011f4c:	f801cca1 	max.s32      	r1, r1, r0
 8011f50:	d8705001 	ld.hs      	r3, (r16, 0x2)
 8011f54:	d8505000 	ld.hs      	r2, (r16, 0x0)
 8011f58:	b820      	st.w      	r1, (r14, 0x0)
 8011f5a:	d8102006 	ld.w      	r0, (r16, 0x18)
 8011f5e:	d8302005 	ld.w      	r1, (r16, 0x14)
 8011f62:	e000092d 	bsr      	0x80131bc	// 80131bc <core_bench_state>
                if (res->crcstate == 0)
 8011f66:	d850101f 	ld.h      	r2, (r16, 0x3e)
                retval = core_bench_state(res->size,
 8011f6a:	74c3      	sexth      	r3, r0
                if (res->crcstate == 0)
 8011f6c:	e922ff3f 	bnez      	r2, 0x8011dea	// 8011dea <core_bench_list+0x1c2>
                    res->crcstate = retval;
 8011f70:	dc10101f 	st.h      	r0, (r16, 0x3e)
 8011f74:	073b      	br      	0x8011dea	// 8011dea <core_bench_list+0x1c2>
 8011f76:	c40a4831 	lsli      	r17, r10, 0
        while (p)
 8011f7a:	e92afecc 	bnez      	r10, 0x8011d12	// 8011d12 <core_bench_list+0xea>
        tail->next = NULL;
 8011f7e:	3300      	movi      	r3, 0
 8011f80:	dc6b2000 	st.w      	r3, (r11, 0x0)
        if (nmerges <= 1) /* allow for nmerges==0, the empty list case */
 8011f84:	9868      	ld.w      	r3, (r14, 0x20)
 8011f86:	3b41      	cmpnei      	r3, 1
 8011f88:	0f60      	bf      	0x8011e48	// 8011e48 <core_bench_list+0x220>
        insize *= 2;
 8011f8a:	9842      	ld.w      	r2, (r14, 0x8)
 8011f8c:	6ccb      	mov      	r3, r2
 8011f8e:	60c8      	addu      	r3, r2
 8011f90:	b862      	st.w      	r3, (r14, 0x8)
 8011f92:	da2e2004 	ld.w      	r17, (r14, 0x10)
 8011f96:	06b8      	br      	0x8011d06	// 8011d06 <core_bench_list+0xde>
        while (list && ((list->info->data16 & 0xff) != info->data16))
 8011f98:	e9110014 	bez      	r17, 0x8011fc0	// 8011fc0 <core_bench_list+0x398>
 8011f9c:	d8712001 	ld.w      	r3, (r17, 0x4)
 8011fa0:	74b0      	zextb      	r2, r12
 8011fa2:	8360      	ld.b      	r3, (r3, 0x0)
 8011fa4:	64ca      	cmpne      	r2, r3
 8011fa6:	c4114823 	lsli      	r3, r17, 0
 8011faa:	0807      	bt      	0x8011fb8	// 8011fb8 <core_bench_list+0x390>
 8011fac:	066b      	br      	0x8011c82	// 8011c82 <core_bench_list+0x5a>
 8011fae:	9341      	ld.w      	r2, (r3, 0x4)
 8011fb0:	9806      	ld.w      	r0, (r14, 0x18)
 8011fb2:	8240      	ld.b      	r2, (r2, 0x0)
 8011fb4:	640a      	cmpne      	r2, r0
 8011fb6:	0e66      	bf      	0x8011c82	// 8011c82 <core_bench_list+0x5a>
            list = list->next;
 8011fb8:	9360      	ld.w      	r3, (r3, 0x0)
        while (list && ((list->info->data16 & 0xff) != info->data16))
 8011fba:	e923fffa 	bnez      	r3, 0x8011fae	// 8011fae <core_bench_list+0x386>
 8011fbe:	0662      	br      	0x8011c82	// 8011c82 <core_bench_list+0x5a>
 8011fc0:	d8172000 	ld.w      	r0, (r23, 0x0)
    list_head *next = NULL, *tmp;
 8011fc4:	ea110000 	movi      	r17, 0
            missed++;
 8011fc8:	e4750000 	addi      	r3, r21, 1
 8011fcc:	c40355f5 	zext      	r21, r3, 15, 0
            retval += (list->next->info->data16 >> 8) & 1;
 8011fd0:	9061      	ld.w      	r3, (r0, 0x4)
 8011fd2:	d8434001 	ld.bs      	r2, (r3, 0x1)
 8011fd6:	e4422001 	andi      	r2, r2, 1
 8011fda:	c4530022 	addu      	r2, r19, r2
 8011fde:	c40255f3 	zext      	r19, r2, 15, 0
 8011fe2:	0679      	br      	0x8011cd4	// 8011cd4 <core_bench_list+0xac>
 8011fe4:	d8712000 	ld.w      	r3, (r17, 0x0)
 8011fe8:	93c0      	ld.w      	r6, (r3, 0x0)
 8011fea:	9620      	ld.w      	r1, (r6, 0x0)
 8011fec:	0734      	br      	0x8011e54	// 8011e54 <core_bench_list+0x22c>
 8011fee:	9826      	ld.w      	r1, (r14, 0x18)
 8011ff0:	0404      	br      	0x8011ff8	// 8011ff8 <core_bench_list+0x3d0>
            list = list->next;
 8011ff2:	95a0      	ld.w      	r5, (r5, 0x0)
        while (list && ((list->info->data16 & 0xff) != info->data16))
 8011ff4:	e905ff43 	bez      	r5, 0x8011e7a	// 8011e7a <core_bench_list+0x252>
 8011ff8:	9561      	ld.w      	r3, (r5, 0x4)
 8011ffa:	8360      	ld.b      	r3, (r3, 0x0)
 8011ffc:	644e      	cmpne      	r3, r1
 8011ffe:	0bfa      	bt      	0x8011ff2	// 8011ff2 <core_bench_list+0x3ca>
 8012000:	0742      	br      	0x8011e84	// 8011e84 <core_bench_list+0x25c>
    for (i = 0; i < find_num; i++)
 8012002:	3300      	movi      	r3, 0
 8012004:	b865      	st.w      	r3, (r14, 0x14)
 8012006:	0679      	br      	0x8011cf8	// 8011cf8 <core_bench_list+0xd0>
        tail->next = NULL;
 8012008:	de312000 	st.w      	r17, (r17, 0x0)
 801200c:	c4114821 	lsli      	r1, r17, 0
 8012010:	c4114826 	lsli      	r6, r17, 0
 8012014:	c4114823 	lsli      	r3, r17, 0
 8012018:	071e      	br      	0x8011e54	// 8011e54 <core_bench_list+0x22c>
	...

0801201c <core_list_init>:
{
 801201c:	14d1      	push      	r4, r15
    ee_u32 size     = (blksize / per_item)
 801201e:	ea120014 	movi      	r18, 20
 8012022:	c6408032 	divu      	r18, r0, r18
 8012026:	e6521001 	subi      	r18, r18, 2
    list_head *memblock_end  = memblock + size;
 801202a:	c4724835 	lsli      	r21, r18, 3
 801202e:	c6a10035 	addu      	r21, r1, r21
    list->next         = NULL;
 8012032:	ea0c0000 	movi      	r12, 0
    list->info->data16 = (ee_s16)0x8080;
 8012036:	ea037f7f 	movi      	r3, 32639
 801203a:	6cce      	nor      	r3, r3
    list->next         = NULL;
 801203c:	dd812000 	st.w      	r12, (r1, 0x0)
    list->info         = datablock;
 8012040:	dea12001 	st.w      	r21, (r1, 0x4)
    list->info->data16 = (ee_s16)0x8080;
 8012044:	dc751000 	st.h      	r3, (r21, 0x0)
    if ((*memblock + 1) >= memblock_end)
 8012048:	e461000f 	addi      	r3, r1, 16
 801204c:	c6a30420 	cmphs      	r3, r21
    list_data *datablock_end = datablock + size;
 8012050:	c4524839 	lsli      	r25, r18, 2
 8012054:	c7350039 	addu      	r25, r21, r25
    list->info->idx    = 0x0000;
 8012058:	dd951001 	st.h      	r12, (r21, 0x2)
    memblock++;
 801205c:	e5a10007 	addi      	r13, r1, 8
    datablock++;
 8012060:	e6d50003 	addi      	r22, r21, 4
    if ((*memblock + 1) >= memblock_end)
 8012064:	0806      	bt      	0x8012070	// 8012070 <core_list_init+0x54>
    if ((*datablock + 1) >= datablock_end)
 8012066:	e4150007 	addi      	r0, r21, 8
 801206a:	c7200420 	cmphs      	r0, r25
 801206e:	0c5b      	bf      	0x8012124	// 8012124 <core_list_init+0x108>
    for (i = 0; i < size; i++)
 8012070:	e9120033 	bez      	r18, 0x80120d6	// 80120d6 <core_list_init+0xba>
 8012074:	7509      	zexth      	r4, r2
 8012076:	3300      	movi      	r3, 0
    to->idx    = from->idx;
 8012078:	ea007fff 	movi      	r0, 32767
    if ((*memblock + 1) >= memblock_end)
 801207c:	e66d0007 	addi      	r19, r13, 8
 8012080:	c6b30420 	cmphs      	r19, r21
 8012084:	0825      	bt      	0x80120ce	// 80120ce <core_list_init+0xb2>
    if ((*datablock + 1) >= datablock_end)
 8012086:	e6f60003 	addi      	r23, r22, 4
 801208a:	c7370420 	cmphs      	r23, r25
 801208e:	0820      	bt      	0x80120ce	// 80120ce <core_list_init+0xb2>
        ee_u16 datpat = ((ee_u16)(seed ^ i) & 0xf);
 8012090:	c40355f8 	zext      	r24, r3, 15, 0
 8012094:	c4982454 	xor      	r20, r24, r4
            = (datpat << 3) | (i & 0x7); /* alternate between algorithms */
 8012098:	c4744834 	lsli      	r20, r20, 3
 801209c:	e6942078 	andi      	r20, r20, 120
 80120a0:	e7182007 	andi      	r24, r24, 7
        ee_u16 dat
 80120a4:	c7142434 	or      	r20, r20, r24
    newitem->next      = insert_point->next;
 80120a8:	dd8d2000 	st.w      	r12, (r13, 0x0)
        info.data16 = (dat << 8) | dat;  /* fill the data with actual data and
 80120ac:	c514482c 	lsli      	r12, r20, 8
 80120b0:	c68c2434 	or      	r20, r12, r20
    insert_point->next = newitem;
 80120b4:	dda12000 	st.w      	r13, (r1, 0x0)
    to->idx    = from->idx;
 80120b8:	6f37      	mov      	r12, r13
    newitem->info = *datablock;
 80120ba:	decd2001 	st.w      	r22, (r13, 0x4)
    to->data16 = from->data16;
 80120be:	de961000 	st.h      	r20, (r22, 0x0)
    to->idx    = from->idx;
 80120c2:	dc161001 	st.h      	r0, (r22, 0x2)
 80120c6:	c413482d 	lsli      	r13, r19, 0
 80120ca:	c4174836 	lsli      	r22, r23, 0
    for (i = 0; i < size; i++)
 80120ce:	2300      	addi      	r3, 1
 80120d0:	c4720480 	cmpne      	r18, r3
 80120d4:	0bd4      	bt      	0x801207c	// 801207c <core_list_init+0x60>
        if (i < size / 5) /* first 20% of the list in order */
 80120d6:	3005      	movi      	r0, 5
 80120d8:	c4128032 	divu      	r18, r18, r0
    while (finder->next != NULL)
 80120dc:	ea030200 	movi      	r3, 512
 80120e0:	3001      	movi      	r0, 1
 80120e2:	0409      	br      	0x80120f4	// 80120f4 <core_list_init+0xd8>
            finder->info->idx = i++;
 80120e4:	d98c2001 	ld.w      	r12, (r12, 0x4)
 80120e8:	dc0c1001 	st.h      	r0, (r12, 0x2)
 80120ec:	23ff      	addi      	r3, 256
 80120ee:	74cd      	zexth      	r3, r3
 80120f0:	2000      	addi      	r0, 1
    to->idx    = from->idx;
 80120f2:	6f37      	mov      	r12, r13
    while (finder->next != NULL)
 80120f4:	d9ac2000 	ld.w      	r13, (r12, 0x0)
 80120f8:	e90d0012 	bez      	r13, 0x801211c	// 801211c <core_list_init+0x100>
        if (i < size / 5) /* first 20% of the list in order */
 80120fc:	c6400420 	cmphs      	r0, r18
 8012100:	0ff2      	bf      	0x80120e4	// 80120e4 <core_list_init+0xc8>
            finder->info->idx = 0x3fff
 8012102:	da6c2001 	ld.w      	r19, (r12, 0x4)
                                & (((i & 0x07) << 8)
 8012106:	e6832700 	andi      	r20, r3, 1792
            ee_u16 pat = (ee_u16)(i++ ^ seed); /* get a pseudo random number */
 801210a:	c440244c 	xor      	r12, r0, r2
                                   | pat); /* make sure the mixed items end up
 801210e:	c68c242c 	or      	r12, r12, r20
                                & (((i & 0x07) << 8)
 8012112:	c40c55ac 	zext      	r12, r12, 13, 0
            finder->info->idx = 0x3fff
 8012116:	dd931001 	st.h      	r12, (r19, 0x2)
 801211a:	07e9      	br      	0x80120ec	// 80120ec <core_list_init+0xd0>
    list = core_list_mergesort(list, cmp_idx, NULL);
 801211c:	6c07      	mov      	r0, r1
 801211e:	e3fffd09 	bsr      	0x8011b30	// 8011b30 <core_list_mergesort.constprop.2>
}
 8012122:	1491      	pop      	r4, r15
    newitem->next      = insert_point->next;
 8012124:	dd812002 	st.w      	r12, (r1, 0x8)
    to->data16 = from->data16;
 8012128:	ea0c0000 	movi      	r12, 0
 801212c:	e58c1000 	subi      	r12, r12, 1
    insert_point->next = newitem;
 8012130:	dda12000 	st.w      	r13, (r1, 0x0)
    newitem->info = *datablock;
 8012134:	dec12003 	st.w      	r22, (r1, 0xc)
    to->data16 = from->data16;
 8012138:	dd951002 	st.h      	r12, (r21, 0x4)
    to->idx    = from->idx;
 801213c:	ea0c7fff 	movi      	r12, 32767
 8012140:	dd961001 	st.h      	r12, (r22, 0x2)
 8012144:	6f37      	mov      	r12, r13
 8012146:	c4004836 	lsli      	r22, r0, 0
 801214a:	6f4f      	mov      	r13, r3
 801214c:	0792      	br      	0x8012070	// 8012070 <core_list_init+0x54>
	...

08012150 <iterate>:
                                    (ee_u16)0xe5a4,
                                    (ee_u16)0x8e3a,
                                    (ee_u16)0x8d84 };
void *
iterate(void *pres)
{
 8012150:	14d3      	push      	r4-r6, r15
    ee_u32        i;
    ee_u16        crc;
    core_results *res        = (core_results *)pres;
    ee_u32        iterations = res->iterations;
 8012152:	90c7      	ld.w      	r6, (r0, 0x1c)
{
 8012154:	6d03      	mov      	r4, r0
    res->crc                 = 0;
 8012156:	1071      	lrw      	r3, 0x80162b4	// 8012198 <iterate+0x48>
 8012158:	9360      	ld.w      	r3, (r3, 0x0)
 801215a:	b06e      	st.w      	r3, (r0, 0x38)
 801215c:	b06f      	st.w      	r3, (r0, 0x3c)
    res->crclist             = 0;
    res->crcmatrix           = 0;
    res->crcstate            = 0;

    for (i = 0; i < iterations; i++)
 801215e:	e9060019 	bez      	r6, 0x8012190	// 8012190 <iterate+0x40>
 8012162:	3500      	movi      	r5, 0
    {
        crc      = core_bench_list(res, 1);
 8012164:	3101      	movi      	r1, 1
 8012166:	6c13      	mov      	r0, r4
 8012168:	e3fffd60 	bsr      	0x8011c28	// 8011c28 <core_bench_list>
        res->crc = crcu16(crc, res->crc);
 801216c:	8c3c      	ld.h      	r1, (r4, 0x38)
 801216e:	e00008c5 	bsr      	0x80132f8	// 80132f8 <crcu16>
        crc      = core_bench_list(res, -1);
 8012172:	3100      	movi      	r1, 0
        res->crc = crcu16(crc, res->crc);
 8012174:	ac1c      	st.h      	r0, (r4, 0x38)
        crc      = core_bench_list(res, -1);
 8012176:	2900      	subi      	r1, 1
 8012178:	6c13      	mov      	r0, r4
 801217a:	e3fffd57 	bsr      	0x8011c28	// 8011c28 <core_bench_list>
        res->crc = crcu16(crc, res->crc);
 801217e:	8c3c      	ld.h      	r1, (r4, 0x38)
 8012180:	e00008bc 	bsr      	0x80132f8	// 80132f8 <crcu16>
 8012184:	ac1c      	st.h      	r0, (r4, 0x38)
        if (i == 0)
 8012186:	e9050007 	bez      	r5, 0x8012194	// 8012194 <iterate+0x44>
    for (i = 0; i < iterations; i++)
 801218a:	2500      	addi      	r5, 1
 801218c:	655a      	cmpne      	r6, r5
 801218e:	0beb      	bt      	0x8012164	// 8012164 <iterate+0x14>
            res->crclist = res->crc;
    }
    return NULL;
}
 8012190:	3000      	movi      	r0, 0
 8012192:	1493      	pop      	r4-r6, r15
            res->crclist = res->crc;
 8012194:	ac1d      	st.h      	r0, (r4, 0x3a)
 8012196:	07fa      	br      	0x801218a	// 801218a <iterate+0x3a>
 8012198:	080162b4 	.long	0x080162b4

0801219c <main>:
    int   argc = 0;
    char *argv[1];
#else
MAIN_RETURN_TYPE
main(int argc, char *argv[])
{
 801219c:	ebe00058 	push      	r4-r11, r15, r16-r17
 80121a0:	e5ce183b 	subi      	r14, r14, 2108
    core_results results[MULTITHREAD];
#if (MEM_METHOD == MEM_STACK)
    ee_u8 stack_memblock[TOTAL_DATA_SIZE * MULTITHREAD];
#endif
    /* first call any initializations needed */
    portable_init(&(results[0].port), &argc, argv);
 80121a4:	6c87      	mov      	r2, r1
{
 80121a6:	b809      	st.w      	r0, (r14, 0x24)
    portable_init(&(results[0].port), &argc, argv);
 80121a8:	1909      	addi      	r1, r14, 36
 80121aa:	e40e0069 	addi      	r0, r14, 106
 80121ae:	e0000639 	bsr      	0x8012e20	// 8012e20 <portable_init>
    if (sizeof(struct list_head_s) > 128)
    {
        ee_printf("list_head structure too big for comparable data!\n");
        return MAIN_RETURN_VAL;
    }
    results[0].seed1      = get_seed(1);
 80121b2:	3001      	movi      	r0, 1
 80121b4:	e000087e 	bsr      	0x80132b0	// 80132b0 <get_seed_32>
 80121b8:	dc0e1014 	st.h      	r0, (r14, 0x28)
    results[0].seed2      = get_seed(2);
 80121bc:	3002      	movi      	r0, 2
 80121be:	e0000879 	bsr      	0x80132b0	// 80132b0 <get_seed_32>
 80121c2:	dc0e1015 	st.h      	r0, (r14, 0x2a)
    results[0].seed3      = get_seed(3);
 80121c6:	3003      	movi      	r0, 3
 80121c8:	e0000874 	bsr      	0x80132b0	// 80132b0 <get_seed_32>
 80121cc:	dc0e1016 	st.h      	r0, (r14, 0x2c)
    results[0].iterations = get_seed_32(4);
 80121d0:	3004      	movi      	r0, 4
 80121d2:	e000086f 	bsr      	0x80132b0	// 80132b0 <get_seed_32>
 80121d6:	b811      	st.w      	r0, (r14, 0x44)
#if CORE_DEBUG
    results[0].iterations = 1;
#endif
    results[0].execs = get_seed_32(5);
 80121d8:	3005      	movi      	r0, 5
 80121da:	e000086b 	bsr      	0x80132b0	// 80132b0 <get_seed_32>
 80121de:	3840      	cmpnei      	r0, 0
 80121e0:	3307      	movi      	r3, 7
 80121e2:	c4030c20 	incf      	r0, r3, 0
    if (results[0].execs == 0)
    { /* if not supplied, execute all algorithms */
        results[0].execs = ALL_ALGORITHMS_MASK;
    }
    /* put in some default values based on one seed only for easy testing */
    if ((results[0].seed1 == 0) && (results[0].seed2 == 0)
 80121e6:	986a      	ld.w      	r3, (r14, 0x28)
    results[0].execs = get_seed_32(5);
 80121e8:	b812      	st.w      	r0, (r14, 0x48)
    if ((results[0].seed1 == 0) && (results[0].seed2 == 0)
 80121ea:	e923017e 	bnez      	r3, 0x80124e6	// 80124e6 <main+0x34a>
        && (results[0].seed3 == 0))
 80121ee:	d86e1016 	ld.h      	r3, (r14, 0x2c)
 80121f2:	748f      	sexth      	r2, r3
 80121f4:	e9020181 	bez      	r2, 0x80124f6	// 80124f6 <main+0x35a>
    results[i].memblock[0] = stack_memblock + i * TOTAL_DATA_SIZE;
    results[i].size        = TOTAL_DATA_SIZE;
    results[i].seed1       = results[0].seed1;
    results[i].seed2       = results[0].seed2;
    results[i].seed3       = results[0].seed3;
    results[i].err         = 0;
 80121f8:	3300      	movi      	r3, 0
 80121fa:	dc6e1034 	st.h      	r3, (r14, 0x68)
    results[i].execs       = results[0].execs;
 80121fe:	9872      	ld.w      	r3, (r14, 0x48)
 8012200:	3100      	movi      	r1, 0
#endif
    /* Data init */
    /* Find out how space much we have based on number of algorithms */
    for (i = 0; i < NUM_ALGORITHMS; i++)
    {
        if ((1 << (ee_u32)i) & results[0].execs)
 8012202:	e6432002 	andi      	r18, r3, 2
 8012206:	ea0c0001 	movi      	r12, 1
 801220a:	eb520000 	cmpnei      	r18, 0
 801220e:	6c07      	mov      	r0, r1
 8012210:	e5a32001 	andi      	r13, r3, 1
 8012214:	c40c0c40 	inct      	r0, r12, 0
 8012218:	c4014835 	lsli      	r21, r1, 0
 801221c:	eb4d0000 	cmpnei      	r13, 0
 8012220:	e6832004 	andi      	r20, r3, 4
 8012224:	c6ac0c40 	inct      	r21, r12, 0
            num_algorithms++;
    }
    for (i = 0; i < MULTITHREAD; i++)
        results[i].size = results[i].size / num_algorithms;
 8012228:	eb540000 	cmpnei      	r20, 0
 801222c:	c42c0c40 	inct      	r1, r12, 0
 8012230:	c6a00020 	addu      	r0, r0, r21
 8012234:	6004      	addu      	r0, r1
 8012236:	ea0107d0 	movi      	r1, 2000
    results[i].memblock[0] = stack_memblock + i * TOTAL_DATA_SIZE;
 801223a:	e66e006b 	addi      	r19, r14, 108
        results[i].size = results[i].size / num_algorithms;
 801223e:	c4018020 	divu      	r0, r1, r0
    results[i].memblock[0] = stack_memblock + i * TOTAL_DATA_SIZE;
 8012242:	de6e200c 	st.w      	r19, (r14, 0x30)
    results[i].seed1       = results[0].seed1;
 8012246:	d84e5014 	ld.hs      	r2, (r14, 0x28)
        results[i].size = results[i].size / num_algorithms;
 801224a:	b810      	st.w      	r0, (r14, 0x40)
    /* Assign pointers */
    for (i = 0; i < NUM_ALGORITHMS; i++)
    {
        ee_u32 ctx;
        if ((1 << (ee_u32)i) & results[0].execs)
 801224c:	e90d00a6 	bez      	r13, 0x8012398	// 8012398 <main+0x1fc>
        {
            for (ctx = 0; ctx < MULTITHREAD; ctx++)
                results[ctx].memblock[i + 1]
                    = (char *)(results[ctx].memblock[0]) + results[0].size * j;
 8012250:	de6e200d 	st.w      	r19, (r14, 0x34)
        if ((1 << (ee_u32)i) & results[0].execs)
 8012254:	e912000a 	bez      	r18, 0x8012268	// 8012268 <main+0xcc>
                    = (char *)(results[ctx].memblock[0]) + results[0].size * j;
 8012258:	c4134821 	lsli      	r1, r19, 0
 801225c:	f80c8441 	mula.32.l      	r1, r12, r0
            j++;
 8012260:	e58c0000 	addi      	r12, r12, 1
                    = (char *)(results[ctx].memblock[0]) + results[0].size * j;
 8012264:	b82e      	st.w      	r1, (r14, 0x38)
            j++;
 8012266:	7731      	zexth      	r12, r12
        if ((1 << (ee_u32)i) & results[0].execs)
 8012268:	e9140006 	bez      	r20, 0x8012274	// 8012274 <main+0xd8>
                    = (char *)(results[ctx].memblock[0]) + results[0].size * j;
 801226c:	f80c8453 	mula.32.l      	r19, r12, r0
 8012270:	de6e200f 	st.w      	r19, (r14, 0x3c)
        }
    }
    /* call inits */
    for (i = 0; i < MULTITHREAD; i++)
    {
        if (results[i].execs & ID_LIST)
 8012274:	e92d00a8 	bnez      	r13, 0x80123c4	// 80123c4 <main+0x228>
        {
            results[i].list = core_list_init(
                results[0].size, results[i].memblock[1], results[i].seed1);
        }
        if (results[i].execs & ID_MATRIX)
 8012278:	e9320099 	bnez      	r18, 0x80123aa	// 80123aa <main+0x20e>
                             results[i].memblock[2],
                             (ee_s32)results[i].seed1
                                 | (((ee_s32)results[i].seed2) << 16),
                             &(results[i].mat));
        }
        if (results[i].execs & ID_STATE)
 801227c:	e4632004 	andi      	r3, r3, 4
 8012280:	e923008e 	bnez      	r3, 0x801239c	// 801239c <main+0x200>
                results[0].size, results[i].seed1, results[i].memblock[3]);
        }
    }

    /* automatically determine number of iterations if not set */
    if (results[0].iterations == 0)
 8012284:	9871      	ld.w      	r3, (r14, 0x44)
 8012286:	e923004a 	bnez      	r3, 0x801231a	// 801231a <main+0x17e>
    {
        secs_ret secs_passed = 0;
        ee_u32   divisor;
        results[0].iterations = 1;
 801228a:	3301      	movi      	r3, 1
 801228c:	b871      	st.w      	r3, (r14, 0x44)
        while (secs_passed < (secs_ret)1)
        {
            results[0].iterations *= 10;
 801228e:	360a      	movi      	r6, 10
 8012290:	00e2      	lrw      	r7, 0x80162b4	// 8012684 <main+0x4e8>
 8012292:	9871      	ld.w      	r3, (r14, 0x44)
 8012294:	7cd8      	mult      	r3, r6
 8012296:	b871      	st.w      	r3, (r14, 0x44)
            start_time();
 8012298:	e000059c 	bsr      	0x8012dd0	// 8012dd0 <start_time>
    ee_u32        iterations = res->iterations;
 801229c:	98b1      	ld.w      	r5, (r14, 0x44)
    res->crc                 = 0;
 801229e:	9760      	ld.w      	r3, (r7, 0x0)
 80122a0:	b878      	st.w      	r3, (r14, 0x60)
 80122a2:	b879      	st.w      	r3, (r14, 0x64)
    for (i = 0; i < iterations; i++)
 80122a4:	e905001d 	bez      	r5, 0x80122de	// 80122de <main+0x142>
 80122a8:	3400      	movi      	r4, 0
        crc      = core_bench_list(res, 1);
 80122aa:	3101      	movi      	r1, 1
 80122ac:	180a      	addi      	r0, r14, 40
 80122ae:	e3fffcbd 	bsr      	0x8011c28	// 8011c28 <core_bench_list>
        res->crc = crcu16(crc, res->crc);
 80122b2:	d82e1030 	ld.h      	r1, (r14, 0x60)
 80122b6:	e0000821 	bsr      	0x80132f8	// 80132f8 <crcu16>
        crc      = core_bench_list(res, -1);
 80122ba:	3100      	movi      	r1, 0
        res->crc = crcu16(crc, res->crc);
 80122bc:	dc0e1030 	st.h      	r0, (r14, 0x60)
        crc      = core_bench_list(res, -1);
 80122c0:	2900      	subi      	r1, 1
 80122c2:	180a      	addi      	r0, r14, 40
 80122c4:	e3fffcb2 	bsr      	0x8011c28	// 8011c28 <core_bench_list>
        res->crc = crcu16(crc, res->crc);
 80122c8:	d82e1030 	ld.h      	r1, (r14, 0x60)
 80122cc:	e0000816 	bsr      	0x80132f8	// 80132f8 <crcu16>
 80122d0:	dc0e1030 	st.h      	r0, (r14, 0x60)
        if (i == 0)
 80122d4:	e904029d 	bez      	r4, 0x801280e	// 801280e <main+0x672>
    for (i = 0; i < iterations; i++)
 80122d8:	2400      	addi      	r4, 1
 80122da:	6516      	cmpne      	r5, r4
 80122dc:	0be7      	bt      	0x80122aa	// 80122aa <main+0x10e>
            iterate(&results[0]);
            stop_time();
 80122de:	e0000583 	bsr      	0x8012de4	// 8012de4 <stop_time>
            secs_passed = time_in_secs(get_time());
 80122e2:	e000058b 	bsr      	0x8012df8	// 8012df8 <get_time>
 80122e6:	e0000593 	bsr      	0x8012e0c	// 8012e0c <time_in_secs>
        while (secs_passed < (secs_ret)1)
 80122ea:	3200      	movi      	r2, 0
 80122ec:	ea233ff0 	movih      	r3, 16368
            secs_passed = time_in_secs(get_time());
 80122f0:	6d03      	mov      	r4, r0
 80122f2:	6d47      	mov      	r5, r1
        while (secs_passed < (secs_ret)1)
 80122f4:	e3fff83c 	bsr      	0x801136c	// 801136c <__ltdf2>
 80122f8:	e980ffcd 	blz      	r0, 0x8012292	// 8012292 <main+0xf6>
        }
        /* now we know it executes for at least 1 sec, set actual run time at
         * about 10 secs */
        divisor = (ee_u32)secs_passed;
 80122fc:	6c13      	mov      	r0, r4
 80122fe:	6c57      	mov      	r1, r5
 8012300:	e3fff16e 	bsr      	0x80105dc	// 80105dc <__fixunsdfsi>
        if (divisor == 0) /* some machines cast float to int as 0 since this
                             conversion is not defined by ANSI, but we know at
                             least one second passed */
            divisor = 1;
 8012304:	3840      	cmpnei      	r0, 0
 8012306:	3301      	movi      	r3, 1
 8012308:	c4600c40 	inct      	r3, r0, 0
        results[0].iterations *= 1 + 10 / divisor;
 801230c:	320a      	movi      	r2, 10
 801230e:	c4628022 	divu      	r2, r2, r3
 8012312:	9871      	ld.w      	r3, (r14, 0x44)
 8012314:	f8628443 	mula.32.l      	r3, r2, r3
 8012318:	b871      	st.w      	r3, (r14, 0x44)
    }
    /* perform actual benchmark */
    start_time();
 801231a:	e000055b 	bsr      	0x8012dd0	// 8012dd0 <start_time>
    for (i = 0; i < default_num_contexts; i++)
    {
        core_stop_parallel(&results[i]);
    }
#else
    iterate(&results[0]);
 801231e:	180a      	addi      	r0, r14, 40
 8012320:	e3ffff18 	bsr      	0x8012150	// 8012150 <iterate>
#endif
    stop_time();
 8012324:	e0000560 	bsr      	0x8012de4	// 8012de4 <stop_time>
    total_time = get_time();
 8012328:	e0000568 	bsr      	0x8012df8	// 8012df8 <get_time>
 801232c:	6d43      	mov      	r5, r0
    /* get a function of the input to report */
    seedcrc = crc16(results[0].seed1, seedcrc);
 801232e:	3100      	movi      	r1, 0
 8012330:	d80e5014 	ld.hs      	r0, (r14, 0x28)
 8012334:	e00009fc 	bsr      	0x801372c	// 801372c <crc16>
    seedcrc = crc16(results[0].seed2, seedcrc);
 8012338:	6c43      	mov      	r1, r0
 801233a:	d80e5015 	ld.hs      	r0, (r14, 0x2a)
 801233e:	e00009f7 	bsr      	0x801372c	// 801372c <crc16>
    seedcrc = crc16(results[0].seed3, seedcrc);
 8012342:	6c43      	mov      	r1, r0
 8012344:	d80e5016 	ld.hs      	r0, (r14, 0x2c)
 8012348:	e00009f2 	bsr      	0x801372c	// 801372c <crc16>
    seedcrc = crc16(results[0].size, seedcrc);
 801234c:	6c43      	mov      	r1, r0
 801234e:	d80e5020 	ld.hs      	r0, (r14, 0x40)
 8012352:	e00009ed 	bsr      	0x801372c	// 801372c <crc16>

    switch (seedcrc)
 8012356:	eb407b05 	cmpnei      	r0, 31493
    seedcrc = crc16(results[0].size, seedcrc);
 801235a:	6d83      	mov      	r6, r0
    switch (seedcrc)
 801235c:	e840021b 	bf      	0x8012792	// 8012792 <main+0x5f6>
 8012360:	eb007b05 	cmphsi      	r0, 31494
 8012364:	0838      	bt      	0x80123d4	// 80123d4 <main+0x238>
 8012366:	eb4018f2 	cmpnei      	r0, 6386
 801236a:	e8400226 	bf      	0x80127b6	// 80127b6 <main+0x61a>
 801236e:	eb404eaf 	cmpnei      	r0, 20143
 8012372:	08ca      	bt      	0x8012506	// 8012506 <main+0x36a>
            ee_printf("6k validation run parameters for coremark.\n");
            break;
        case 0x4eaf: /* seed1=0x8, seed2=0x8, seed3=0x8, size 400 per algorithm
                      */
            known_id = 2;
            ee_printf("Profile generation run parameters for coremark.\n");
 8012374:	011a      	lrw      	r0, 0x8016310	// 8012688 <main+0x4ec>
 8012376:	e3fffa79 	bsr      	0x8011868	// 8011868 <__GI_puts>
            break;
 801237a:	ea03e5a4 	movi      	r3, 58788
 801237e:	b864      	st.w      	r3, (r14, 0x10)
 8012380:	6e4f      	mov      	r9, r3
 8012382:	ea035608 	movi      	r3, 22024
 8012386:	b862      	st.w      	r3, (r14, 0x8)
 8012388:	6dcf      	mov      	r7, r3
 801238a:	ea036a79 	movi      	r3, 27257
 801238e:	b863      	st.w      	r3, (r14, 0xc)
 8012390:	6e0f      	mov      	r8, r3
            known_id = 2;
 8012392:	3302      	movi      	r3, 2
 8012394:	b868      	st.w      	r3, (r14, 0x20)
            break;
 8012396:	0437      	br      	0x8012404	// 8012404 <main+0x268>
        if ((1 << (ee_u32)i) & results[0].execs)
 8012398:	6f37      	mov      	r12, r13
 801239a:	075d      	br      	0x8012254	// 8012254 <main+0xb8>
            core_init_state(
 801239c:	984f      	ld.w      	r2, (r14, 0x3c)
 801239e:	d82e5014 	ld.hs      	r1, (r14, 0x28)
 80123a2:	9810      	ld.w      	r0, (r14, 0x40)
 80123a4:	e000054c 	bsr      	0x8012e3c	// 8012e3c <core_init_state>
 80123a8:	076e      	br      	0x8012284	// 8012284 <main+0xe8>
                                 | (((ee_s32)results[i].seed2) << 16),
 80123aa:	d84e5015 	ld.hs      	r2, (r14, 0x2a)
                             (ee_s32)results[i].seed1
 80123ae:	d82e5014 	ld.hs      	r1, (r14, 0x28)
                                 | (((ee_s32)results[i].seed2) << 16),
 80123b2:	4250      	lsli      	r2, r2, 16
            core_init_matrix(results[0].size,
 80123b4:	1b14      	addi      	r3, r14, 80
 80123b6:	6c84      	or      	r2, r1
 80123b8:	9810      	ld.w      	r0, (r14, 0x40)
 80123ba:	982e      	ld.w      	r1, (r14, 0x38)
 80123bc:	e0000492 	bsr      	0x8012ce0	// 8012ce0 <core_init_matrix>
 80123c0:	9872      	ld.w      	r3, (r14, 0x48)
 80123c2:	075d      	br      	0x801227c	// 801227c <main+0xe0>
            results[i].list = core_list_init(
 80123c4:	982d      	ld.w      	r1, (r14, 0x34)
 80123c6:	e3fffe2b 	bsr      	0x801201c	// 801201c <core_list_init>
 80123ca:	9872      	ld.w      	r3, (r14, 0x48)
 80123cc:	b813      	st.w      	r0, (r14, 0x4c)
 80123ce:	e6432002 	andi      	r18, r3, 2
 80123d2:	0753      	br      	0x8012278	// 8012278 <main+0xdc>
    switch (seedcrc)
 80123d4:	eb408a02 	cmpnei      	r0, 35330
 80123d8:	e8400201 	bf      	0x80127da	// 80127da <main+0x63e>
 80123dc:	eb40e9f5 	cmpnei      	r0, 59893
 80123e0:	0893      	bt      	0x8012506	// 8012506 <main+0x36a>
        case 0xe9f5: /* seed1=0, seed2=0, seed3=0x66, size 666 per algorithm */
            known_id = 3;
            ee_printf("2K performance run parameters for coremark.\n");
 80123e2:	0214      	lrw      	r0, 0x8016340	// 801268c <main+0x4f0>
 80123e4:	e3fffa42 	bsr      	0x8011868	// 8011868 <__GI_puts>
            break;
 80123e8:	ea038e3a 	movi      	r3, 36410
 80123ec:	b864      	st.w      	r3, (r14, 0x10)
 80123ee:	6e4f      	mov      	r9, r3
 80123f0:	ea031fd7 	movi      	r3, 8151
 80123f4:	b862      	st.w      	r3, (r14, 0x8)
 80123f6:	6dcf      	mov      	r7, r3
 80123f8:	ea03e714 	movi      	r3, 59156
 80123fc:	b863      	st.w      	r3, (r14, 0xc)
 80123fe:	6e0f      	mov      	r8, r3
            known_id = 3;
 8012400:	3303      	movi      	r3, 3
 8012402:	b868      	st.w      	r3, (r14, 0x20)
            total_errors = -1;
            break;
    }
    if (known_id >= 0)
    {
        for (i = 0; i < default_num_contexts; i++)
 8012404:	ea9100a3 	lrw      	r17, 0x20000160	// 8012690 <main+0x4f4>
 8012408:	d8712000 	ld.w      	r3, (r17, 0x0)
 801240c:	e90301f9 	bez      	r3, 0x80127fe	// 80127fe <main+0x662>
        {
            results[i].err = 0;
            if ((results[i].execs & ID_LIST)
                && (results[i].crclist != list_known_crc[known_id]))
            {
                ee_printf("[%u]ERROR! list crc 0x%04x - should be 0x%04x\n",
 8012410:	027e      	lrw      	r3, 0x8016398	// 8012694 <main+0x4f8>
        for (i = 0; i < default_num_contexts; i++)
 8012412:	ea0a0000 	movi      	r10, 0
                ee_printf("[%u]ERROR! list crc 0x%04x - should be 0x%04x\n",
 8012416:	b865      	st.w      	r3, (r14, 0x14)
        for (i = 0; i < default_num_contexts; i++)
 8012418:	c40a4830 	lsli      	r16, r10, 0
                results[i].err++;
            }
            if ((results[i].execs & ID_MATRIX)
                && (results[i].crcmatrix != matrix_known_crc[known_id]))
            {
                ee_printf("[%u]ERROR! matrix crc 0x%04x - should be 0x%04x\n",
 801241c:	0360      	lrw      	r3, 0x80163c8	// 8012698 <main+0x4fc>
            results[i].err = 0;
 801241e:	ea0b0044 	movi      	r11, 68
                ee_printf("[%u]ERROR! matrix crc 0x%04x - should be 0x%04x\n",
 8012422:	b866      	st.w      	r3, (r14, 0x18)
            results[i].err = 0;
 8012424:	6d2b      	mov      	r4, r10
                results[i].err++;
            }
            if ((results[i].execs & ID_STATE)
                && (results[i].crcstate != state_known_crc[known_id]))
            {
                ee_printf("[%u]ERROR! state crc 0x%04x - should be 0x%04x\n",
 8012426:	0361      	lrw      	r3, 0x80163fc	// 801269c <main+0x500>
 8012428:	b867      	st.w      	r3, (r14, 0x1c)
 801242a:	0411      	br      	0x801244c	// 801244c <main+0x2b0>
 801242c:	1b0a      	addi      	r3, r14, 40
 801242e:	f9708443 	mula.32.l      	r3, r16, r11
 8012432:	d8635020 	ld.hs      	r3, (r3, 0x40)
                          i,
                          results[i].crcstate,
                          state_known_crc[known_id]);
                results[i].err++;
            }
            total_errors += results[i].err;
 8012436:	60e8      	addu      	r3, r10
        for (i = 0; i < default_num_contexts; i++)
 8012438:	e5900000 	addi      	r12, r16, 1
            total_errors += results[i].err;
 801243c:	768f      	sexth      	r10, r3
        for (i = 0; i < default_num_contexts; i++)
 801243e:	c40c55f0 	zext      	r16, r12, 15, 0
 8012442:	d8712000 	ld.w      	r3, (r17, 0x0)
 8012446:	c4700420 	cmphs      	r16, r3
 801244a:	0864      	bt      	0x8012512	// 8012512 <main+0x376>
            results[i].err = 0;
 801244c:	e64e0027 	addi      	r18, r14, 40
 8012450:	f9708452 	mula.32.l      	r18, r16, r11
            if ((results[i].execs & ID_LIST)
 8012454:	d8722008 	ld.w      	r3, (r18, 0x20)
 8012458:	e4632001 	andi      	r3, r3, 1
            results[i].err = 0;
 801245c:	dc921020 	st.h      	r4, (r18, 0x40)
            if ((results[i].execs & ID_LIST)
 8012460:	e9030015 	bez      	r3, 0x801248a	// 801248a <main+0x2ee>
                && (results[i].crclist != list_known_crc[known_id]))
 8012464:	d852101d 	ld.h      	r2, (r18, 0x3a)
 8012468:	660a      	cmpne      	r2, r8
 801246a:	de4e2001 	st.w      	r18, (r14, 0x4)
 801246e:	0c0e      	bf      	0x801248a	// 801248a <main+0x2ee>
                ee_printf("[%u]ERROR! list crc 0x%04x - should be 0x%04x\n",
 8012470:	9863      	ld.w      	r3, (r14, 0xc)
 8012472:	c4104821 	lsli      	r1, r16, 0
 8012476:	9805      	ld.w      	r0, (r14, 0x14)
 8012478:	e0001e7a 	bsr      	0x801616c	// 801616c <wm_printf>
                results[i].err++;
 801247c:	da4e2001 	ld.w      	r18, (r14, 0x4)
 8012480:	d8721020 	ld.h      	r3, (r18, 0x40)
 8012484:	2300      	addi      	r3, 1
 8012486:	dc721020 	st.h      	r3, (r18, 0x40)
            if ((results[i].execs & ID_MATRIX)
 801248a:	e64e0027 	addi      	r18, r14, 40
 801248e:	f9708452 	mula.32.l      	r18, r16, r11
 8012492:	d8722008 	ld.w      	r3, (r18, 0x20)
 8012496:	e4432002 	andi      	r2, r3, 2
 801249a:	e9020017 	bez      	r2, 0x80124c8	// 80124c8 <main+0x32c>
                && (results[i].crcmatrix != matrix_known_crc[known_id]))
 801249e:	d852101e 	ld.h      	r2, (r18, 0x3c)
 80124a2:	649e      	cmpne      	r7, r2
 80124a4:	de4e2001 	st.w      	r18, (r14, 0x4)
 80124a8:	0c10      	bf      	0x80124c8	// 80124c8 <main+0x32c>
                ee_printf("[%u]ERROR! matrix crc 0x%04x - should be 0x%04x\n",
 80124aa:	9862      	ld.w      	r3, (r14, 0x8)
 80124ac:	c4104821 	lsli      	r1, r16, 0
 80124b0:	9806      	ld.w      	r0, (r14, 0x18)
 80124b2:	e0001e5d 	bsr      	0x801616c	// 801616c <wm_printf>
                results[i].err++;
 80124b6:	da4e2001 	ld.w      	r18, (r14, 0x4)
 80124ba:	d8721020 	ld.h      	r3, (r18, 0x40)
 80124be:	2300      	addi      	r3, 1
 80124c0:	dc721020 	st.h      	r3, (r18, 0x40)
 80124c4:	d8722008 	ld.w      	r3, (r18, 0x20)
            if ((results[i].execs & ID_STATE)
 80124c8:	e4632004 	andi      	r3, r3, 4
 80124cc:	e903ffb0 	bez      	r3, 0x801242c	// 801242c <main+0x290>
                && (results[i].crcstate != state_known_crc[known_id]))
 80124d0:	e64e0027 	addi      	r18, r14, 40
 80124d4:	f9708452 	mula.32.l      	r18, r16, r11
 80124d8:	d852101f 	ld.h      	r2, (r18, 0x3e)
 80124dc:	664a      	cmpne      	r2, r9
 80124de:	0901      	bt      	0x80126e0	// 80126e0 <main+0x544>
 80124e0:	d8725020 	ld.hs      	r3, (r18, 0x40)
 80124e4:	07a9      	br      	0x8012436	// 8012436 <main+0x29a>
    if ((results[0].seed1 == 1) && (results[0].seed2 == 0)
 80124e6:	3b41      	cmpnei      	r3, 1
 80124e8:	0a88      	bt      	0x80121f8	// 80121f8 <main+0x5c>
        && (results[0].seed3 == 0))
 80124ea:	d86e5016 	ld.hs      	r3, (r14, 0x2c)
 80124ee:	e923fe85 	bnez      	r3, 0x80121f8	// 80121f8 <main+0x5c>
        results[0].seed1 = 0x3415;
 80124f2:	ea033415 	movi      	r3, 13333
 80124f6:	dc6e1014 	st.h      	r3, (r14, 0x28)
        results[0].seed2 = 0x3415;
 80124fa:	dc6e1015 	st.h      	r3, (r14, 0x2a)
        results[0].seed3 = 0x66;
 80124fe:	3366      	movi      	r3, 102
 8012500:	dc6e1016 	st.h      	r3, (r14, 0x2c)
 8012504:	067a      	br      	0x80121f8	// 80121f8 <main+0x5c>
    ee_s16       known_id = -1, total_errors = 0;
 8012506:	3300      	movi      	r3, 0
 8012508:	2b00      	subi      	r3, 1
 801250a:	b868      	st.w      	r3, (r14, 0x20)
            total_errors = -1;
 801250c:	6e8f      	mov      	r10, r3
 801250e:	ea910061 	lrw      	r17, 0x20000160	// 8012690 <main+0x4f4>
        }
    }
    total_errors += check_data_types();
 8012512:	e00009c1 	bsr      	0x8013894	// 8013894 <check_data_types>
 8012516:	c5400027 	addu      	r7, r0, r10
 801251a:	75dd      	zexth      	r7, r7
    /* and report results */
    ee_printf("CoreMark Size    : %lu\n", (long unsigned)results[0].size);
 801251c:	9830      	ld.w      	r1, (r14, 0x40)
 801251e:	1301      	lrw      	r0, 0x801642c	// 80126a0 <main+0x504>
 8012520:	e0001e26 	bsr      	0x801616c	// 801616c <wm_printf>
    ee_printf("Total ticks      : %lu\n", (long unsigned)total_time);
 8012524:	6c57      	mov      	r1, r5
 8012526:	1300      	lrw      	r0, 0x8016444	// 80126a4 <main+0x508>
 8012528:	e0001e22 	bsr      	0x801616c	// 801616c <wm_printf>
#if HAS_FLOAT
    ee_printf("Total time (secs): %f\n", time_in_secs(total_time));
 801252c:	6c17      	mov      	r0, r5
 801252e:	e000046f 	bsr      	0x8012e0c	// 8012e0c <time_in_secs>
 8012532:	6cc7      	mov      	r3, r1
 8012534:	6c8f      	mov      	r2, r3
 8012536:	6c43      	mov      	r1, r0
 8012538:	121c      	lrw      	r0, 0x801645c	// 80126a8 <main+0x50c>
 801253a:	e0001e19 	bsr      	0x801616c	// 801616c <wm_printf>
    if (time_in_secs(total_time) > 0)
 801253e:	6c17      	mov      	r0, r5
 8012540:	e0000466 	bsr      	0x8012e0c	// 8012e0c <time_in_secs>
 8012544:	3200      	movi      	r2, 0
 8012546:	6ccb      	mov      	r3, r2
 8012548:	e3fff6d2 	bsr      	0x80112ec	// 80112ec <__gtdf2>
 801254c:	e9600019 	blsz      	r0, 0x801257e	// 801257e <main+0x3e2>
        ee_printf("Iterations/Sec   : %f\n",
                  default_num_contexts * results[0].iterations
 8012550:	d8712000 	ld.w      	r3, (r17, 0x0)
 8012554:	9811      	ld.w      	r0, (r14, 0x44)
        ee_printf("Iterations/Sec   : %f\n",
 8012556:	7c0c      	mult      	r0, r3
 8012558:	e3fff792 	bsr      	0x801147c	// 801147c <__floatunsidf>
 801255c:	6e03      	mov      	r8, r0
                      / time_in_secs(total_time));
 801255e:	6c17      	mov      	r0, r5
        ee_printf("Iterations/Sec   : %f\n",
 8012560:	6e47      	mov      	r9, r1
                      / time_in_secs(total_time));
 8012562:	e0000455 	bsr      	0x8012e0c	// 8012e0c <time_in_secs>
 8012566:	6c83      	mov      	r2, r0
 8012568:	6cc7      	mov      	r3, r1
        ee_printf("Iterations/Sec   : %f\n",
 801256a:	6c23      	mov      	r0, r8
 801256c:	6c67      	mov      	r1, r9
 801256e:	e3fff617 	bsr      	0x801119c	// 801119c <__divdf3>
 8012572:	6cc7      	mov      	r3, r1
 8012574:	6c8f      	mov      	r2, r3
 8012576:	6c43      	mov      	r1, r0
 8012578:	120d      	lrw      	r0, 0x8016474	// 80126ac <main+0x510>
 801257a:	e0001df9 	bsr      	0x801616c	// 801616c <wm_printf>
    if (time_in_secs(total_time) > 0)
        ee_printf("Iterations/Sec   : %d\n",
                  default_num_contexts * results[0].iterations
                      / time_in_secs(total_time));
#endif
    if (time_in_secs(total_time) < 10)
 801257e:	6c17      	mov      	r0, r5
 8012580:	e0000446 	bsr      	0x8012e0c	// 8012e0c <time_in_secs>
 8012584:	3200      	movi      	r2, 0
 8012586:	ea234024 	movih      	r3, 16420
 801258a:	e3fff6f1 	bsr      	0x801136c	// 801136c <__ltdf2>
 801258e:	e98000d1 	blz      	r0, 0x8012730	// 8012730 <main+0x594>
    {
        ee_printf(
            "ERROR! Must execute for at least 10 secs for a valid result!\n");
        total_errors++;
 8012592:	75df      	sexth      	r7, r7
    }

    ee_printf("Iterations       : %lu\n",
 8012594:	9831      	ld.w      	r1, (r14, 0x44)
 8012596:	d8712000 	ld.w      	r3, (r17, 0x0)
 801259a:	7c4c      	mult      	r1, r3
 801259c:	1205      	lrw      	r0, 0x80164cc	// 80126b0 <main+0x514>
 801259e:	e0001de7 	bsr      	0x801616c	// 801616c <wm_printf>
              (long unsigned)default_num_contexts * results[0].iterations);
    ee_printf("Compiler version : %s\n", COMPILER_VERSION);
 80125a2:	1225      	lrw      	r1, 0x80164e4	// 80126b4 <main+0x518>
 80125a4:	1205      	lrw      	r0, 0x80164f0	// 80126b8 <main+0x51c>
 80125a6:	e0001de3 	bsr      	0x801616c	// 801616c <wm_printf>
    ee_printf("Compiler flags   : %s\n", COMPILER_FLAGS);
 80125aa:	1225      	lrw      	r1, 0x8016508	// 80126bc <main+0x520>
 80125ac:	1205      	lrw      	r0, 0x801650c	// 80126c0 <main+0x524>
 80125ae:	e0001ddf 	bsr      	0x801616c	// 801616c <wm_printf>
#if (MULTITHREAD > 1)
    ee_printf("Parallel %s : %d\n", PARALLEL_METHOD, default_num_contexts);
#endif
    ee_printf("Memory location  : %s\n", MEM_LOCATION);
 80125b2:	1225      	lrw      	r1, 0x8016524	// 80126c4 <main+0x528>
 80125b4:	1205      	lrw      	r0, 0x801652c	// 80126c8 <main+0x52c>
 80125b6:	e0001ddb 	bsr      	0x801616c	// 801616c <wm_printf>
    /* output for verification */
    ee_printf("seedcrc          : 0x%04x\n", seedcrc);
 80125ba:	6c5b      	mov      	r1, r6
 80125bc:	1204      	lrw      	r0, 0x8016544	// 80126cc <main+0x530>
 80125be:	e0001dd7 	bsr      	0x801616c	// 801616c <wm_printf>
    if (results[0].execs & ID_LIST)
 80125c2:	9872      	ld.w      	r3, (r14, 0x48)
 80125c4:	e4632001 	andi      	r3, r3, 1
 80125c8:	e9030018 	bez      	r3, 0x80125f8	// 80125f8 <main+0x45c>
        for (i = 0; i < default_num_contexts; i++)
 80125cc:	d8712000 	ld.w      	r3, (r17, 0x0)
 80125d0:	e9030014 	bez      	r3, 0x80125f8	// 80125f8 <main+0x45c>
 80125d4:	3400      	movi      	r4, 0
            ee_printf("[%d]crclist       : 0x%04x\n", i, results[i].crclist);
 80125d6:	ea080044 	movi      	r8, 68
 80125da:	11de      	lrw      	r6, 0x8016560	// 80126d0 <main+0x534>
 80125dc:	1b0a      	addi      	r3, r14, 40
 80125de:	f9048443 	mula.32.l      	r3, r4, r8
 80125e2:	6c53      	mov      	r1, r4
 80125e4:	8b5d      	ld.h      	r2, (r3, 0x3a)
 80125e6:	6c1b      	mov      	r0, r6
        for (i = 0; i < default_num_contexts; i++)
 80125e8:	2400      	addi      	r4, 1
            ee_printf("[%d]crclist       : 0x%04x\n", i, results[i].crclist);
 80125ea:	e0001dc1 	bsr      	0x801616c	// 801616c <wm_printf>
        for (i = 0; i < default_num_contexts; i++)
 80125ee:	7511      	zexth      	r4, r4
 80125f0:	d8712000 	ld.w      	r3, (r17, 0x0)
 80125f4:	64d0      	cmphs      	r4, r3
 80125f6:	0ff3      	bf      	0x80125dc	// 80125dc <main+0x440>
    if (results[0].execs & ID_MATRIX)
 80125f8:	9872      	ld.w      	r3, (r14, 0x48)
 80125fa:	e4432002 	andi      	r2, r3, 2
 80125fe:	e9020019 	bez      	r2, 0x8012630	// 8012630 <main+0x494>
        for (i = 0; i < default_num_contexts; i++)
 8012602:	d8512000 	ld.w      	r2, (r17, 0x0)
 8012606:	e90200fe 	bez      	r2, 0x8012802	// 8012802 <main+0x666>
 801260a:	3400      	movi      	r4, 0
            ee_printf("[%d]crcmatrix     : 0x%04x\n", i, results[i].crcmatrix);
 801260c:	ea080044 	movi      	r8, 68
 8012610:	11d1      	lrw      	r6, 0x801657c	// 80126d4 <main+0x538>
 8012612:	1b0a      	addi      	r3, r14, 40
 8012614:	f9048443 	mula.32.l      	r3, r4, r8
 8012618:	6c53      	mov      	r1, r4
 801261a:	8b5e      	ld.h      	r2, (r3, 0x3c)
 801261c:	6c1b      	mov      	r0, r6
        for (i = 0; i < default_num_contexts; i++)
 801261e:	2400      	addi      	r4, 1
            ee_printf("[%d]crcmatrix     : 0x%04x\n", i, results[i].crcmatrix);
 8012620:	e0001da6 	bsr      	0x801616c	// 801616c <wm_printf>
        for (i = 0; i < default_num_contexts; i++)
 8012624:	7511      	zexth      	r4, r4
 8012626:	d8712000 	ld.w      	r3, (r17, 0x0)
 801262a:	64d0      	cmphs      	r4, r3
 801262c:	0ff3      	bf      	0x8012612	// 8012612 <main+0x476>
 801262e:	9872      	ld.w      	r3, (r14, 0x48)
    if (results[0].execs & ID_STATE)
 8012630:	e4632004 	andi      	r3, r3, 4
 8012634:	e9230067 	bnez      	r3, 0x8012702	// 8012702 <main+0x566>
 8012638:	d8712000 	ld.w      	r3, (r17, 0x0)
        for (i = 0; i < default_num_contexts; i++)
            ee_printf("[%d]crcstate      : 0x%04x\n", i, results[i].crcstate);
    for (i = 0; i < default_num_contexts; i++)
 801263c:	e9030014 	bez      	r3, 0x8012664	// 8012664 <main+0x4c8>
 8012640:	3400      	movi      	r4, 0
        ee_printf("[%d]crcfinal      : 0x%04x\n", i, results[i].crc);
 8012642:	ea080044 	movi      	r8, 68
 8012646:	11c5      	lrw      	r6, 0x80165b4	// 80126d8 <main+0x53c>
 8012648:	1b0a      	addi      	r3, r14, 40
 801264a:	f9048443 	mula.32.l      	r3, r4, r8
 801264e:	6c53      	mov      	r1, r4
 8012650:	8b5c      	ld.h      	r2, (r3, 0x38)
 8012652:	6c1b      	mov      	r0, r6
    for (i = 0; i < default_num_contexts; i++)
 8012654:	2400      	addi      	r4, 1
        ee_printf("[%d]crcfinal      : 0x%04x\n", i, results[i].crc);
 8012656:	e0001d8b 	bsr      	0x801616c	// 801616c <wm_printf>
    for (i = 0; i < default_num_contexts; i++)
 801265a:	7511      	zexth      	r4, r4
 801265c:	d8712000 	ld.w      	r3, (r17, 0x0)
 8012660:	64d0      	cmphs      	r4, r3
 8012662:	0ff3      	bf      	0x8012648	// 8012648 <main+0x4ac>
    if (total_errors == 0)
 8012664:	e907006b 	bez      	r7, 0x801273a	// 801273a <main+0x59e>
#endif
            ee_printf("\n");
        }
#endif
    }
    if (total_errors > 0)
 8012668:	e9670091 	blsz      	r7, 0x801278a	// 801278a <main+0x5ee>
        ee_printf("Errors detected\n");
 801266c:	101c      	lrw      	r0, 0x801663c	// 80126dc <main+0x540>
 801266e:	e3fff8fd 	bsr      	0x8011868	// 8011868 <__GI_puts>
#if (MEM_METHOD == MEM_MALLOC)
    for (i = 0; i < MULTITHREAD; i++)
        portable_free(results[i].memblock[0]);
#endif
    /* And last call any target specific code for finalizing */
    portable_fini(&(results[0].port));
 8012672:	e40e0069 	addi      	r0, r14, 106
 8012676:	e00003df 	bsr      	0x8012e34	// 8012e34 <portable_fini>

    return MAIN_RETURN_VAL;
}
 801267a:	3000      	movi      	r0, 0
 801267c:	e5ce083b 	addi      	r14, r14, 2108
 8012680:	ebc00058 	pop      	r4-r11, r15, r16-r17
 8012684:	080162b4 	.long	0x080162b4
 8012688:	08016310 	.long	0x08016310
 801268c:	08016340 	.long	0x08016340
 8012690:	20000160 	.long	0x20000160
 8012694:	08016398 	.long	0x08016398
 8012698:	080163c8 	.long	0x080163c8
 801269c:	080163fc 	.long	0x080163fc
 80126a0:	0801642c 	.long	0x0801642c
 80126a4:	08016444 	.long	0x08016444
 80126a8:	0801645c 	.long	0x0801645c
 80126ac:	08016474 	.long	0x08016474
 80126b0:	080164cc 	.long	0x080164cc
 80126b4:	080164e4 	.long	0x080164e4
 80126b8:	080164f0 	.long	0x080164f0
 80126bc:	08016508 	.long	0x08016508
 80126c0:	0801650c 	.long	0x0801650c
 80126c4:	08016524 	.long	0x08016524
 80126c8:	0801652c 	.long	0x0801652c
 80126cc:	08016544 	.long	0x08016544
 80126d0:	08016560 	.long	0x08016560
 80126d4:	0801657c 	.long	0x0801657c
 80126d8:	080165b4 	.long	0x080165b4
 80126dc:	0801663c 	.long	0x0801663c
 80126e0:	de4e2001 	st.w      	r18, (r14, 0x4)
                ee_printf("[%u]ERROR! state crc 0x%04x - should be 0x%04x\n",
 80126e4:	9864      	ld.w      	r3, (r14, 0x10)
 80126e6:	c4104821 	lsli      	r1, r16, 0
 80126ea:	9807      	ld.w      	r0, (r14, 0x1c)
 80126ec:	e0001d40 	bsr      	0x801616c	// 801616c <wm_printf>
                results[i].err++;
 80126f0:	da4e2001 	ld.w      	r18, (r14, 0x4)
 80126f4:	d8721020 	ld.h      	r3, (r18, 0x40)
 80126f8:	2300      	addi      	r3, 1
 80126fa:	74cf      	sexth      	r3, r3
 80126fc:	dc721020 	st.h      	r3, (r18, 0x40)
 8012700:	069b      	br      	0x8012436	// 8012436 <main+0x29a>
        for (i = 0; i < default_num_contexts; i++)
 8012702:	d8712000 	ld.w      	r3, (r17, 0x0)
 8012706:	e903ffaf 	bez      	r3, 0x8012664	// 8012664 <main+0x4c8>
 801270a:	3400      	movi      	r4, 0
            ee_printf("[%d]crcstate      : 0x%04x\n", i, results[i].crcstate);
 801270c:	ea080044 	movi      	r8, 68
 8012710:	12c2      	lrw      	r6, 0x8016598	// 8012818 <main+0x67c>
 8012712:	1b0a      	addi      	r3, r14, 40
 8012714:	f9048443 	mula.32.l      	r3, r4, r8
 8012718:	6c53      	mov      	r1, r4
 801271a:	8b5f      	ld.h      	r2, (r3, 0x3e)
 801271c:	6c1b      	mov      	r0, r6
        for (i = 0; i < default_num_contexts; i++)
 801271e:	2400      	addi      	r4, 1
            ee_printf("[%d]crcstate      : 0x%04x\n", i, results[i].crcstate);
 8012720:	e0001d26 	bsr      	0x801616c	// 801616c <wm_printf>
        for (i = 0; i < default_num_contexts; i++)
 8012724:	7511      	zexth      	r4, r4
 8012726:	d8712000 	ld.w      	r3, (r17, 0x0)
 801272a:	64d0      	cmphs      	r4, r3
 801272c:	0ff3      	bf      	0x8012712	// 8012712 <main+0x576>
 801272e:	0787      	br      	0x801263c	// 801263c <main+0x4a0>
        ee_printf(
 8012730:	111b      	lrw      	r0, 0x801648c	// 801281c <main+0x680>
 8012732:	e3fff89b 	bsr      	0x8011868	// 8011868 <__GI_puts>
        total_errors++;
 8012736:	2700      	addi      	r7, 1
 8012738:	072d      	br      	0x8012592	// 8012592 <main+0x3f6>
        ee_printf(
 801273a:	111a      	lrw      	r0, 0x80165d0	// 8012820 <main+0x684>
 801273c:	e3fff896 	bsr      	0x8011868	// 8011868 <__GI_puts>
        if (known_id == 3)
 8012740:	9868      	ld.w      	r3, (r14, 0x20)
 8012742:	3b43      	cmpnei      	r3, 3
 8012744:	0b97      	bt      	0x8012672	// 8012672 <main+0x4d6>
                      default_num_contexts * results[0].iterations
 8012746:	d8712000 	ld.w      	r3, (r17, 0x0)
 801274a:	9811      	ld.w      	r0, (r14, 0x44)
            ee_printf("CoreMark 1.0 : %f / %s %s",
 801274c:	7c0c      	mult      	r0, r3
 801274e:	e3fff697 	bsr      	0x801147c	// 801147c <__floatunsidf>
 8012752:	6d83      	mov      	r6, r0
                          / time_in_secs(total_time),
 8012754:	6c17      	mov      	r0, r5
            ee_printf("CoreMark 1.0 : %f / %s %s",
 8012756:	6dc7      	mov      	r7, r1
                          / time_in_secs(total_time),
 8012758:	e000035a 	bsr      	0x8012e0c	// 8012e0c <time_in_secs>
 801275c:	6c83      	mov      	r2, r0
 801275e:	6cc7      	mov      	r3, r1
            ee_printf("CoreMark 1.0 : %f / %s %s",
 8012760:	6c1b      	mov      	r0, r6
 8012762:	6c5f      	mov      	r1, r7
 8012764:	e3fff51c 	bsr      	0x801119c	// 801119c <__divdf3>
 8012768:	6f47      	mov      	r13, r1
 801276a:	116f      	lrw      	r3, 0x8016508	// 8012824 <main+0x688>
 801276c:	6c43      	mov      	r1, r0
 801276e:	b860      	st.w      	r3, (r14, 0x0)
 8012770:	6cb7      	mov      	r2, r13
 8012772:	116e      	lrw      	r3, 0x80164e4	// 8012828 <main+0x68c>
 8012774:	110e      	lrw      	r0, 0x8016618	// 801282c <main+0x690>
 8012776:	e0001cfb 	bsr      	0x801616c	// 801616c <wm_printf>
            ee_printf(" / %s", MEM_LOCATION);
 801277a:	112e      	lrw      	r1, 0x8016524	// 8012830 <main+0x694>
 801277c:	110e      	lrw      	r0, 0x8016634	// 8012834 <main+0x698>
 801277e:	e0001cf7 	bsr      	0x801616c	// 801616c <wm_printf>
            ee_printf("\n");
 8012782:	300a      	movi      	r0, 10
 8012784:	e3fff86a 	bsr      	0x8011858	// 8011858 <__GI_putchar>
 8012788:	0775      	br      	0x8012672	// 8012672 <main+0x4d6>
        ee_printf(
 801278a:	110c      	lrw      	r0, 0x801664c	// 8012838 <main+0x69c>
 801278c:	e3fff86e 	bsr      	0x8011868	// 8011868 <__GI_puts>
 8012790:	0771      	br      	0x8012672	// 8012672 <main+0x4d6>
            ee_printf("6k validation run parameters for coremark.\n");
 8012792:	110b      	lrw      	r0, 0x80162e4	// 801283c <main+0x6a0>
 8012794:	e3fff86a 	bsr      	0x8011868	// 8011868 <__GI_puts>
            break;
 8012798:	ea0339bf 	movi      	r3, 14783
 801279c:	b864      	st.w      	r3, (r14, 0x10)
 801279e:	6e4f      	mov      	r9, r3
 80127a0:	ea031199 	movi      	r3, 4505
 80127a4:	b862      	st.w      	r3, (r14, 0x8)
 80127a6:	6dcf      	mov      	r7, r3
 80127a8:	ea033340 	movi      	r3, 13120
 80127ac:	b863      	st.w      	r3, (r14, 0xc)
 80127ae:	6e0f      	mov      	r8, r3
            known_id = 1;
 80127b0:	3301      	movi      	r3, 1
 80127b2:	b868      	st.w      	r3, (r14, 0x20)
            break;
 80127b4:	0628      	br      	0x8012404	// 8012404 <main+0x268>
            ee_printf("2K validation run parameters for coremark.\n");
 80127b6:	1103      	lrw      	r0, 0x801636c	// 8012840 <main+0x6a4>
 80127b8:	e3fff858 	bsr      	0x8011868	// 8011868 <__GI_puts>
            break;
 80127bc:	ea038d84 	movi      	r3, 36228
 80127c0:	b864      	st.w      	r3, (r14, 0x10)
 80127c2:	6e4f      	mov      	r9, r3
 80127c4:	ea030747 	movi      	r3, 1863
 80127c8:	b862      	st.w      	r3, (r14, 0x8)
 80127ca:	6dcf      	mov      	r7, r3
 80127cc:	ea03e3c1 	movi      	r3, 58305
 80127d0:	b863      	st.w      	r3, (r14, 0xc)
 80127d2:	6e0f      	mov      	r8, r3
            known_id = 4;
 80127d4:	3304      	movi      	r3, 4
 80127d6:	b868      	st.w      	r3, (r14, 0x20)
            break;
 80127d8:	0616      	br      	0x8012404	// 8012404 <main+0x268>
            ee_printf("6k performance run parameters for coremark.\n");
 80127da:	101b      	lrw      	r0, 0x80162b8	// 8012844 <main+0x6a8>
 80127dc:	e3fff846 	bsr      	0x8011868	// 8011868 <__GI_puts>
            break;
 80127e0:	ea035e47 	movi      	r3, 24135
 80127e4:	b864      	st.w      	r3, (r14, 0x10)
 80127e6:	6e4f      	mov      	r9, r3
 80127e8:	ea03be52 	movi      	r3, 48722
 80127ec:	b862      	st.w      	r3, (r14, 0x8)
 80127ee:	6dcf      	mov      	r7, r3
 80127f0:	ea03d4b0 	movi      	r3, 54448
 80127f4:	b863      	st.w      	r3, (r14, 0xc)
 80127f6:	6e0f      	mov      	r8, r3
            known_id = 0;
 80127f8:	3300      	movi      	r3, 0
 80127fa:	b868      	st.w      	r3, (r14, 0x20)
            break;
 80127fc:	0604      	br      	0x8012404	// 8012404 <main+0x268>
        for (i = 0; i < default_num_contexts; i++)
 80127fe:	6e8f      	mov      	r10, r3
 8012800:	0689      	br      	0x8012512	// 8012512 <main+0x376>
    if (results[0].execs & ID_STATE)
 8012802:	e4632004 	andi      	r3, r3, 4
 8012806:	e923ff2f 	bnez      	r3, 0x8012664	// 8012664 <main+0x4c8>
 801280a:	6ccb      	mov      	r3, r2
 801280c:	0718      	br      	0x801263c	// 801263c <main+0x4a0>
            res->crclist = res->crc;
 801280e:	dc0e1031 	st.h      	r0, (r14, 0x62)
 8012812:	e800fd63 	br      	0x80122d8	// 80122d8 <main+0x13c>
 8012816:	0000      	.short	0x0000
 8012818:	08016598 	.long	0x08016598
 801281c:	0801648c 	.long	0x0801648c
 8012820:	080165d0 	.long	0x080165d0
 8012824:	08016508 	.long	0x08016508
 8012828:	080164e4 	.long	0x080164e4
 801282c:	08016618 	.long	0x08016618
 8012830:	08016524 	.long	0x08016524
 8012834:	08016634 	.long	0x08016634
 8012838:	0801664c 	.long	0x0801664c
 801283c:	080162e4 	.long	0x080162e4
 8012840:	0801636c 	.long	0x0801636c
 8012844:	080162b8 	.long	0x080162b8

08012848 <matrix_test>:

        After the last step, matrix A is back to original contents.
*/
ee_s16
matrix_test(ee_u32 N, MATRES *C, MATDAT *A, MATDAT *B, MATDAT val)
{
 8012848:	ebe00058 	push      	r4-r11, r15, r16-r17
 801284c:	d90e1016 	ld.h      	r8, (r14, 0x2c)
 8012850:	6ecf      	mov      	r11, r3
 8012852:	7723      	sexth      	r12, r8
    ee_u16 crc     = 0;
    MATDAT clipval = matrix_big(val);
 8012854:	ea030fff 	movi      	r3, 4095
 8012858:	6cce      	nor      	r3, r3
{
 801285a:	6dc3      	mov      	r7, r0
 801285c:	6d87      	mov      	r6, r1
 801285e:	6e8b      	mov      	r10, r2
    MATDAT clipval = matrix_big(val);
 8012860:	c46c2425 	or      	r5, r12, r3
*/
void
matrix_add_const(ee_u32 N, MATDAT *A, MATDAT val)
{
    ee_u32 i, j;
    for (i = 0; i < N; i++)
 8012864:	e9000213 	bez      	r0, 0x8012c8a	// 8012c8a <matrix_test+0x442>
 8012868:	e7201001 	subi      	r25, r0, 2
 801286c:	c4394859 	lsri      	r25, r25, 1
 8012870:	ea160000 	movi      	r22, 0
 8012874:	e7390000 	addi      	r25, r25, 1
 8012878:	7621      	zexth      	r8, r8
 801287a:	5880      	addu      	r4, r0, r0
 801287c:	c4024832 	lsli      	r18, r2, 0
 8012880:	c4164835 	lsli      	r21, r22, 0
 8012884:	ea090002 	movi      	r9, 2
 8012888:	ea9000fa 	lrw      	r16, 0x80162b4	// 8012c70 <matrix_test+0x428>
 801288c:	c7390031 	addu      	r17, r25, r25
 8012890:	0429      	br      	0x80128e2	// 80128e2 <matrix_test+0x9a>
    {
        for (j = 0; j < N; j++)
        {
            A[i * N + j] += val;
 8012892:	d8721000 	ld.h      	r3, (r18, 0x0)
 8012896:	3f42      	cmpnei      	r7, 2
 8012898:	60e0      	addu      	r3, r8
 801289a:	dc721000 	st.h      	r3, (r18, 0x0)
 801289e:	0c4d      	bf      	0x8012938	// 8012938 <matrix_test+0xf0>
 80128a0:	6c5f      	mov      	r1, r7
        for (j = 0; j < N; j++)
 80128a2:	3301      	movi      	r3, 1
 80128a4:	645e      	cmpne      	r7, r1
 80128a6:	0c15      	bf      	0x80128d0	// 80128d0 <matrix_test+0x88>
 80128a8:	c4270097 	subu      	r23, r7, r1
 80128ac:	e6771001 	subi      	r19, r23, 2
 80128b0:	c4334853 	lsri      	r19, r19, 1
 80128b4:	eb570001 	cmpnei      	r23, 1
 80128b8:	e6730000 	addi      	r19, r19, 1
 80128bc:	c6730038 	addu      	r24, r19, r19
 80128c0:	0820      	bt      	0x8012900	// 8012900 <matrix_test+0xb8>
            A[i * N + j] += val;
 80128c2:	c6c30023 	addu      	r3, r3, r22
 80128c6:	60cc      	addu      	r3, r3
 80128c8:	60e8      	addu      	r3, r10
 80128ca:	8b20      	ld.h      	r1, (r3, 0x0)
 80128cc:	6060      	addu      	r1, r8
 80128ce:	ab20      	st.h      	r1, (r3, 0x0)
    for (i = 0; i < N; i++)
 80128d0:	e6b50000 	addi      	r21, r21, 1
 80128d4:	c6a70480 	cmpne      	r7, r21
 80128d8:	c4920032 	addu      	r18, r18, r4
 80128dc:	c4f60036 	addu      	r22, r22, r7
 80128e0:	0c34      	bf      	0x8012948	// 8012948 <matrix_test+0x100>
 80128e2:	65e4      	cmphs      	r9, r7
 80128e4:	c4325423 	zext      	r3, r18, 1, 1
 80128e8:	f8e3cd23 	min.u32      	r3, r3, r7
 80128ec:	0bd3      	bt      	0x8012892	// 8012892 <matrix_test+0x4a>
 80128ee:	e92301e0 	bnez      	r3, 0x8012cae	// 8012cae <matrix_test+0x466>
 80128f2:	c4194833 	lsli      	r19, r25, 0
 80128f6:	c4114838 	lsli      	r24, r17, 0
        for (j = 0; j < N; j++)
 80128fa:	6c4f      	mov      	r1, r3
 80128fc:	c4074837 	lsli      	r23, r7, 0
 8012900:	c6c10021 	addu      	r1, r1, r22
 8012904:	da902000 	ld.w      	r20, (r16, 0x0)
 8012908:	6044      	addu      	r1, r1
 801290a:	c6885de0 	ins      	r20, r8, 15, 0
 801290e:	c42a0020 	addu      	r0, r10, r1
 8012912:	c6885df0 	ins      	r20, r8, 31, 16
{
 8012916:	3100      	movi      	r1, 0
            A[i * N + j] += val;
 8012918:	d020088d 	ldr.w      	r13, (r0, r1 << 2)
 801291c:	f9b4c00d 	padd.16      	r13, r20, r13
 8012920:	d420088d 	str.w      	r13, (r0, r1 << 2)
 8012924:	2100      	addi      	r1, 1
 8012926:	c6610420 	cmphs      	r1, r19
 801292a:	0ff7      	bf      	0x8012918	// 8012918 <matrix_test+0xd0>
 801292c:	c6f80480 	cmpne      	r24, r23
 8012930:	c7030023 	addu      	r3, r3, r24
 8012934:	0bc7      	bt      	0x80128c2	// 80128c2 <matrix_test+0x7a>
 8012936:	07cd      	br      	0x80128d0	// 80128d0 <matrix_test+0x88>
 8012938:	d8721001 	ld.h      	r3, (r18, 0x2)
 801293c:	60e0      	addu      	r3, r8
 801293e:	dc721001 	st.h      	r3, (r18, 0x2)
 8012942:	6c5f      	mov      	r1, r7
        for (j = 0; j < N; j++)
 8012944:	6cdf      	mov      	r3, r7
 8012946:	07af      	br      	0x80128a4	// 80128a4 <matrix_test+0x5c>
 8012948:	c4474829 	lsli      	r9, r7, 2
 801294c:	c4064832 	lsli      	r18, r6, 0
    for (i = 0; i < N; i++)
 8012950:	ea0d0000 	movi      	r13, 0
 8012954:	5c08      	addu      	r0, r4, r2
        for (j = 0; j < N; j++)
 8012956:	c4124821 	lsli      	r1, r18, 0
            C[i * N + j] = (MATRES)A[i * N + j] * (MATRES)val;
 801295a:	d0028403 	ldbi.h      	r3, (r2)
        for (j = 0; j < N; j++)
 801295e:	6482      	cmpne      	r0, r2
            C[i * N + j] = (MATRES)A[i * N + j] * (MATRES)val;
 8012960:	7cf1      	mulsh      	r3, r12
 8012962:	d4018803 	stbi.w      	r3, (r1)
        for (j = 0; j < N; j++)
 8012966:	0bfa      	bt      	0x801295a	// 801295a <matrix_test+0x112>
    for (i = 0; i < N; i++)
 8012968:	e5ad0000 	addi      	r13, r13, 1
 801296c:	c6ad0480 	cmpne      	r13, r21
 8012970:	c5320032 	addu      	r18, r18, r9
 8012974:	6c83      	mov      	r2, r0
 8012976:	0bef      	bt      	0x8012954	// 8012954 <matrix_test+0x10c>
 8012978:	ea140000 	movi      	r20, 0
 801297c:	c4064830 	lsli      	r16, r6, 0
 8012980:	6f1b      	mov      	r12, r6
 8012982:	c4144820 	lsli      	r0, r20, 0
 8012986:	c414482d 	lsli      	r13, r20, 0
 801298a:	c4144823 	lsli      	r3, r20, 0
 801298e:	c4144833 	lsli      	r19, r20, 0
 8012992:	c5890032 	addu      	r18, r9, r12
            cur = C[i * N + j];
 8012996:	d00c8802 	ldbi.w      	r2, (r12)
                ret += (cur > prev) ? 1 : 0;
 801299a:	64b5      	cmplt      	r13, r2
 801299c:	c400050d 	mvc      	r13
                ret += 10;
 80129a0:	7401      	zexth      	r0, r0
            tmp += cur;
 80129a2:	60c8      	addu      	r3, r2
                ret += 10;
 80129a4:	e4200009 	addi      	r1, r0, 10
                ret += (cur > prev) ? 1 : 0;
 80129a8:	6034      	addu      	r0, r13
 80129aa:	64d5      	cmplt      	r5, r3
                ret += 10;
 80129ac:	7447      	sexth      	r1, r1
                ret += (cur > prev) ? 1 : 0;
 80129ae:	7403      	sexth      	r0, r0
 80129b0:	c4730c40 	inct      	r3, r19, 0
 80129b4:	c4010c40 	inct      	r0, r1, 0
        for (j = 0; j < N; j++)
 80129b8:	c64c0480 	cmpne      	r12, r18
            cur = C[i * N + j];
 80129bc:	6f4b      	mov      	r13, r2
        for (j = 0; j < N; j++)
 80129be:	0bec      	bt      	0x8012996	// 8012996 <matrix_test+0x14e>
    for (i = 0; i < N; i++)
 80129c0:	e6940000 	addi      	r20, r20, 1
 80129c4:	c6870480 	cmpne      	r7, r20
 80129c8:	0be5      	bt      	0x8012992	// 8012992 <matrix_test+0x14a>
    crc = crc16(matrix_sum(N, C, clipval), crc);
 80129ca:	3100      	movi      	r1, 0
 80129cc:	e00006b0 	bsr      	0x801372c	// 801372c <crc16>
 80129d0:	6c43      	mov      	r1, r0
 80129d2:	c40a4833 	lsli      	r19, r10, 0
 80129d6:	c5260034 	addu      	r20, r6, r9
 80129da:	c48b0032 	addu      	r18, r11, r4
 80129de:	6caf      	mov      	r2, r11
    for (i = 0; i < N; i++)
 80129e0:	c413482c 	lsli      	r12, r19, 0
 80129e4:	3000      	movi      	r0, 0
    for (i = 0; i < N; i++)
    {
        C[i] = 0;
        for (j = 0; j < N; j++)
        {
            C[i] += (MATRES)A[i * N + j] * (MATRES)B[j];
 80129e6:	d002840d 	ldbi.h      	r13, (r2)
 80129ea:	d00c8403 	ldbi.h      	r3, (r12)
        for (j = 0; j < N; j++)
 80129ee:	c4520480 	cmpne      	r18, r2
            C[i] += (MATRES)A[i * N + j] * (MATRES)B[j];
 80129f2:	7cf5      	mulsh      	r3, r13
 80129f4:	600c      	addu      	r0, r3
        for (j = 0; j < N; j++)
 80129f6:	0bf8      	bt      	0x80129e6	// 80129e6 <matrix_test+0x19e>
 80129f8:	d4108800 	stbi.w      	r0, (r16)
    for (i = 0; i < N; i++)
 80129fc:	c6140480 	cmpne      	r20, r16
 8012a00:	c4930033 	addu      	r19, r19, r4
 8012a04:	0bed      	bt      	0x80129de	// 80129de <matrix_test+0x196>
 8012a06:	ea100000 	movi      	r16, 0
 8012a0a:	c4064831 	lsli      	r17, r6, 0
 8012a0e:	6f5b      	mov      	r13, r6
 8012a10:	c4104832 	lsli      	r18, r16, 0
 8012a14:	c4104823 	lsli      	r3, r16, 0
 8012a18:	c4104822 	lsli      	r2, r16, 0
 8012a1c:	c4104834 	lsli      	r20, r16, 0
 8012a20:	c5a90033 	addu      	r19, r9, r13
            cur = C[i * N + j];
 8012a24:	d00d880c 	ldbi.w      	r12, (r13)
                ret += (cur > prev) ? 1 : 0;
 8012a28:	c5920440 	cmplt      	r18, r12
 8012a2c:	c4000512 	mvc      	r18
                ret += 10;
 8012a30:	74cd      	zexth      	r3, r3
            tmp += cur;
 8012a32:	60b0      	addu      	r2, r12
                ret += 10;
 8012a34:	e4030009 	addi      	r0, r3, 10
                ret += (cur > prev) ? 1 : 0;
 8012a38:	c6430023 	addu      	r3, r3, r18
 8012a3c:	6495      	cmplt      	r5, r2
                ret += 10;
 8012a3e:	7403      	sexth      	r0, r0
                ret += (cur > prev) ? 1 : 0;
 8012a40:	74cf      	sexth      	r3, r3
 8012a42:	c4540c40 	inct      	r2, r20, 0
 8012a46:	c4600c40 	inct      	r3, r0, 0
        for (j = 0; j < N; j++)
 8012a4a:	c5b30480 	cmpne      	r19, r13
            cur = C[i * N + j];
 8012a4e:	c40c4832 	lsli      	r18, r12, 0
        for (j = 0; j < N; j++)
 8012a52:	0be9      	bt      	0x8012a24	// 8012a24 <matrix_test+0x1dc>
    for (i = 0; i < N; i++)
 8012a54:	e6100000 	addi      	r16, r16, 1
 8012a58:	c6070480 	cmpne      	r7, r16
 8012a5c:	c413482d 	lsli      	r13, r19, 0
 8012a60:	0be0      	bt      	0x8012a20	// 8012a20 <matrix_test+0x1d8>
    crc = crc16(matrix_sum(N, C, clipval), crc);
 8012a62:	6c0f      	mov      	r0, r3
 8012a64:	e0000664 	bsr      	0x801372c	// 801372c <crc16>
 8012a68:	6c43      	mov      	r1, r0
 8012a6a:	c40a4835 	lsli      	r21, r10, 0
 8012a6e:	c48b0036 	addu      	r22, r11, r4
 8012a72:	ea170000 	movi      	r23, 0
 8012a76:	6c2f      	mov      	r0, r11
 8012a78:	c6a40022 	addu      	r2, r4, r21
 8012a7c:	c4114834 	lsli      	r20, r17, 0
 8012a80:	c4004832 	lsli      	r18, r0, 0
 8012a84:	c415482d 	lsli      	r13, r21, 0
 8012a88:	ea130000 	movi      	r19, 0
        for (j = 0; j < N; j++)
        {
            C[i * N + j] = 0;
            for (k = 0; k < N; k++)
            {
                C[i * N + j] += (MATRES)A[i * N + k] * (MATRES)B[k * N + j];
 8012a8c:	d00d840c 	ldbi.h      	r12, (r13)
 8012a90:	d8721000 	ld.h      	r3, (r18, 0x0)
            for (k = 0; k < N; k++)
 8012a94:	674a      	cmpne      	r2, r13
                C[i * N + j] += (MATRES)A[i * N + k] * (MATRES)B[k * N + j];
 8012a96:	7f0d      	mulsh      	r12, r3
 8012a98:	c5930033 	addu      	r19, r19, r12
 8012a9c:	c4920032 	addu      	r18, r18, r4
            for (k = 0; k < N; k++)
 8012aa0:	0bf6      	bt      	0x8012a8c	// 8012a8c <matrix_test+0x244>
 8012aa2:	2001      	addi      	r0, 2
        for (j = 0; j < N; j++)
 8012aa4:	c4160480 	cmpne      	r22, r0
 8012aa8:	d4148813 	stbi.w      	r19, (r20)
 8012aac:	0bea      	bt      	0x8012a80	// 8012a80 <matrix_test+0x238>
    for (i = 0; i < N; i++)
 8012aae:	e6f70000 	addi      	r23, r23, 1
 8012ab2:	c6f00480 	cmpne      	r16, r23
 8012ab6:	c5310031 	addu      	r17, r17, r9
 8012aba:	c4024835 	lsli      	r21, r2, 0
 8012abe:	0bdc      	bt      	0x8012a76	// 8012a76 <matrix_test+0x22e>
 8012ac0:	ea100000 	movi      	r16, 0
 8012ac4:	c4064831 	lsli      	r17, r6, 0
 8012ac8:	6f5b      	mov      	r13, r6
 8012aca:	c4104832 	lsli      	r18, r16, 0
 8012ace:	c4104823 	lsli      	r3, r16, 0
 8012ad2:	c4104822 	lsli      	r2, r16, 0
 8012ad6:	c4104834 	lsli      	r20, r16, 0
 8012ada:	c5a90033 	addu      	r19, r9, r13
            cur = C[i * N + j];
 8012ade:	d00d880c 	ldbi.w      	r12, (r13)
                ret += (cur > prev) ? 1 : 0;
 8012ae2:	c5920440 	cmplt      	r18, r12
 8012ae6:	c4000512 	mvc      	r18
                ret += 10;
 8012aea:	74cd      	zexth      	r3, r3
            tmp += cur;
 8012aec:	60b0      	addu      	r2, r12
                ret += 10;
 8012aee:	e4030009 	addi      	r0, r3, 10
                ret += (cur > prev) ? 1 : 0;
 8012af2:	c6430023 	addu      	r3, r3, r18
 8012af6:	6495      	cmplt      	r5, r2
                ret += 10;
 8012af8:	7403      	sexth      	r0, r0
                ret += (cur > prev) ? 1 : 0;
 8012afa:	74cf      	sexth      	r3, r3
 8012afc:	c4540c40 	inct      	r2, r20, 0
 8012b00:	c4600c40 	inct      	r3, r0, 0
        for (j = 0; j < N; j++)
 8012b04:	c5b30480 	cmpne      	r19, r13
            cur = C[i * N + j];
 8012b08:	c40c4832 	lsli      	r18, r12, 0
        for (j = 0; j < N; j++)
 8012b0c:	0be9      	bt      	0x8012ade	// 8012ade <matrix_test+0x296>
    for (i = 0; i < N; i++)
 8012b0e:	e6100000 	addi      	r16, r16, 1
 8012b12:	c6070480 	cmpne      	r7, r16
 8012b16:	c413482d 	lsli      	r13, r19, 0
 8012b1a:	0be0      	bt      	0x8012ada	// 8012ada <matrix_test+0x292>
    crc = crc16(matrix_sum(N, C, clipval), crc);
 8012b1c:	6c0f      	mov      	r0, r3
 8012b1e:	e0000607 	bsr      	0x801372c	// 801372c <crc16>
 8012b22:	6c43      	mov      	r1, r0
 8012b24:	6cab      	mov      	r2, r10
 8012b26:	c48b0037 	addu      	r23, r11, r4
 8012b2a:	ea180000 	movi      	r24, 0
 8012b2e:	c40b4836 	lsli      	r22, r11, 0
 8012b32:	c4440035 	addu      	r21, r4, r2
 8012b36:	c4114823 	lsli      	r3, r17, 0
 8012b3a:	c4164832 	lsli      	r18, r22, 0
 8012b3e:	6f4b      	mov      	r13, r2
 8012b40:	ea130000 	movi      	r19, 0
        for (j = 0; j < N; j++)
        {
            C[i * N + j] = 0;
            for (k = 0; k < N; k++)
            {
                MATRES tmp = (MATRES)A[i * N + k] * (MATRES)B[k * N + j];
 8012b44:	d00d840c 	ldbi.h      	r12, (r13)
 8012b48:	d8121000 	ld.h      	r0, (r18, 0x0)
 8012b4c:	7f01      	mulsh      	r12, r0
            for (k = 0; k < N; k++)
 8012b4e:	c6ad0480 	cmpne      	r13, r21
                C[i * N + j] += bit_extract(tmp, 2, 4) * bit_extract(tmp, 5, 7);
 8012b52:	c44c54b4 	zext      	r20, r12, 5, 2
 8012b56:	c4ac556c 	zext      	r12, r12, 11, 5
 8012b5a:	f9948453 	mula.32.l      	r19, r20, r12
 8012b5e:	c4920032 	addu      	r18, r18, r4
            for (k = 0; k < N; k++)
 8012b62:	0bf1      	bt      	0x8012b44	// 8012b44 <matrix_test+0x2fc>
 8012b64:	e6d60001 	addi      	r22, r22, 2
        for (j = 0; j < N; j++)
 8012b68:	c6d70480 	cmpne      	r23, r22
 8012b6c:	d4038813 	stbi.w      	r19, (r3)
 8012b70:	0be5      	bt      	0x8012b3a	// 8012b3a <matrix_test+0x2f2>
    for (i = 0; i < N; i++)
 8012b72:	e7180000 	addi      	r24, r24, 1
 8012b76:	c7100480 	cmpne      	r16, r24
 8012b7a:	c5310031 	addu      	r17, r17, r9
 8012b7e:	6cb7      	mov      	r2, r13
 8012b80:	0bd7      	bt      	0x8012b2e	// 8012b2e <matrix_test+0x2e6>
 8012b82:	3400      	movi      	r4, 0
 8012b84:	6f53      	mov      	r13, r4
 8012b86:	6c13      	mov      	r0, r4
 8012b88:	6cd3      	mov      	r3, r4
 8012b8a:	c4044833 	lsli      	r19, r4, 0
 8012b8e:	c4c90032 	addu      	r18, r9, r6
            cur = C[i * N + j];
 8012b92:	d0068802 	ldbi.w      	r2, (r6)
                ret += (cur > prev) ? 1 : 0;
 8012b96:	64b5      	cmplt      	r13, r2
 8012b98:	c400050d 	mvc      	r13
                ret += 10;
 8012b9c:	7401      	zexth      	r0, r0
            tmp += cur;
 8012b9e:	60c8      	addu      	r3, r2
                ret += 10;
 8012ba0:	e5800009 	addi      	r12, r0, 10
                ret += (cur > prev) ? 1 : 0;
 8012ba4:	6034      	addu      	r0, r13
 8012ba6:	64d5      	cmplt      	r5, r3
                ret += 10;
 8012ba8:	7733      	sexth      	r12, r12
                ret += (cur > prev) ? 1 : 0;
 8012baa:	7403      	sexth      	r0, r0
 8012bac:	c4730c40 	inct      	r3, r19, 0
 8012bb0:	c40c0c40 	inct      	r0, r12, 0
        for (j = 0; j < N; j++)
 8012bb4:	c4d20480 	cmpne      	r18, r6
            cur = C[i * N + j];
 8012bb8:	6f4b      	mov      	r13, r2
        for (j = 0; j < N; j++)
 8012bba:	0bec      	bt      	0x8012b92	// 8012b92 <matrix_test+0x34a>
    for (i = 0; i < N; i++)
 8012bbc:	2400      	addi      	r4, 1
 8012bbe:	651e      	cmpne      	r7, r4
 8012bc0:	0be7      	bt      	0x8012b8e	// 8012b8e <matrix_test+0x346>
    crc = crc16(matrix_sum(N, C, clipval), crc);
 8012bc2:	e00005b5 	bsr      	0x801372c	// 801372c <crc16>
    matrix_add_const(N, A, -val); /* return matrix to initial value */
 8012bc6:	ea130000 	movi      	r19, 0
 8012bca:	c4840036 	addu      	r22, r4, r4
 8012bce:	c40a4832 	lsli      	r18, r10, 0
 8012bd2:	c4134834 	lsli      	r20, r19, 0
 8012bd6:	ea150002 	movi      	r21, 2
 8012bda:	ea970026 	lrw      	r23, 0x80162b4	// 8012c70 <matrix_test+0x428>
 8012bde:	c4950420 	cmphs      	r21, r4
 8012be2:	c4325423 	zext      	r3, r18, 1, 1
 8012be6:	0c4e      	bf      	0x8012c82	// 8012c82 <matrix_test+0x43a>
 8012be8:	6cd3      	mov      	r3, r4
            A[i * N + j] += val;
 8012bea:	d8521000 	ld.h      	r2, (r18, 0x0)
 8012bee:	3b41      	cmpnei      	r3, 1
 8012bf0:	60a2      	subu      	r2, r8
 8012bf2:	dc521000 	st.h      	r2, (r18, 0x0)
 8012bf6:	083f      	bt      	0x8012c74	// 8012c74 <matrix_test+0x42c>
        for (j = 0; j < N; j++)
 8012bf8:	6c4f      	mov      	r1, r3
 8012bfa:	64d2      	cmpne      	r4, r3
 8012bfc:	0c2e      	bf      	0x8012c58	// 8012c58 <matrix_test+0x410>
 8012bfe:	c4640099 	subu      	r25, r4, r3
 8012c02:	e5b91001 	subi      	r13, r25, 2
 8012c06:	c42d484d 	lsri      	r13, r13, 1
 8012c0a:	eb590001 	cmpnei      	r25, 1
 8012c0e:	e5ad0000 	addi      	r13, r13, 1
 8012c12:	c5ad0025 	addu      	r5, r13, r13
 8012c16:	0c1a      	bf      	0x8012c4a	// 8012c4a <matrix_test+0x402>
 8012c18:	c4730023 	addu      	r3, r19, r3
 8012c1c:	db172000 	ld.w      	r24, (r23, 0x0)
 8012c20:	60cc      	addu      	r3, r3
 8012c22:	c7085de0 	ins      	r24, r8, 15, 0
 8012c26:	c46a0022 	addu      	r2, r10, r3
 8012c2a:	c7085df0 	ins      	r24, r8, 31, 16
 8012c2e:	3300      	movi      	r3, 0
            A[i * N + j] += val;
 8012c30:	d062088c 	ldr.w      	r12, (r2, r3 << 2)
 8012c34:	fb0cc40c 	psub.16      	r12, r12, r24
 8012c38:	d462088c 	str.w      	r12, (r2, r3 << 2)
 8012c3c:	2300      	addi      	r3, 1
 8012c3e:	674c      	cmphs      	r3, r13
 8012c40:	0ff8      	bf      	0x8012c30	// 8012c30 <matrix_test+0x3e8>
 8012c42:	c7250480 	cmpne      	r5, r25
 8012c46:	6054      	addu      	r1, r5
 8012c48:	0c08      	bf      	0x8012c58	// 8012c58 <matrix_test+0x410>
 8012c4a:	c4330023 	addu      	r3, r19, r1
 8012c4e:	60cc      	addu      	r3, r3
 8012c50:	60e8      	addu      	r3, r10
 8012c52:	8b40      	ld.h      	r2, (r3, 0x0)
 8012c54:	60a2      	subu      	r2, r8
 8012c56:	ab40      	st.h      	r2, (r3, 0x0)
    for (i = 0; i < N; i++)
 8012c58:	e6940000 	addi      	r20, r20, 1
 8012c5c:	c4940480 	cmpne      	r20, r4
 8012c60:	c6d20032 	addu      	r18, r18, r22
 8012c64:	c4930033 	addu      	r19, r19, r4
 8012c68:	0bbb      	bt      	0x8012bde	// 8012bde <matrix_test+0x396>
    return crc;
 8012c6a:	7403      	sexth      	r0, r0
}
 8012c6c:	ebc00058 	pop      	r4-r11, r15, r16-r17
 8012c70:	080162b4 	.long	0x080162b4
            A[i * N + j] += val;
 8012c74:	d8521001 	ld.h      	r2, (r18, 0x2)
 8012c78:	60a2      	subu      	r2, r8
 8012c7a:	dc521001 	st.h      	r2, (r18, 0x2)
        for (j = 0; j < N; j++)
 8012c7e:	3102      	movi      	r1, 2
 8012c80:	07bd      	br      	0x8012bfa	// 8012bfa <matrix_test+0x3b2>
 8012c82:	e923ffb4 	bnez      	r3, 0x8012bea	// 8012bea <matrix_test+0x3a2>
 8012c86:	6c4f      	mov      	r1, r3
 8012c88:	07bb      	br      	0x8012bfe	// 8012bfe <matrix_test+0x3b6>
    crc = crc16(matrix_sum(N, C, clipval), crc);
 8012c8a:	6c43      	mov      	r1, r0
 8012c8c:	e0000550 	bsr      	0x801372c	// 801372c <crc16>
    crc = crc16(matrix_sum(N, C, clipval), crc);
 8012c90:	6c43      	mov      	r1, r0
 8012c92:	6c1f      	mov      	r0, r7
 8012c94:	e000054c 	bsr      	0x801372c	// 801372c <crc16>
    crc = crc16(matrix_sum(N, C, clipval), crc);
 8012c98:	6c43      	mov      	r1, r0
 8012c9a:	6c1f      	mov      	r0, r7
 8012c9c:	e0000548 	bsr      	0x801372c	// 801372c <crc16>
    crc = crc16(matrix_sum(N, C, clipval), crc);
 8012ca0:	6c43      	mov      	r1, r0
 8012ca2:	6c1f      	mov      	r0, r7
 8012ca4:	e0000544 	bsr      	0x801372c	// 801372c <crc16>
    return crc;
 8012ca8:	7403      	sexth      	r0, r0
}
 8012caa:	ebc00058 	pop      	r4-r11, r15, r16-r17
            A[i * N + j] += val;
 8012cae:	d8321000 	ld.h      	r1, (r18, 0x0)
 8012cb2:	6060      	addu      	r1, r8
 8012cb4:	dc321000 	st.h      	r1, (r18, 0x0)
 8012cb8:	6c4f      	mov      	r1, r3
 8012cba:	e800fdf5 	br      	0x80128a4	// 80128a4 <matrix_test+0x5c>
	...

08012cc0 <core_bench_matrix>:
{
 8012cc0:	14d1      	push      	r4, r15
 8012cc2:	1421      	subi      	r14, r14, 4
    crc = crc16(matrix_test(N, C, A, B, val), crc);
 8012cc4:	b820      	st.w      	r1, (r14, 0x0)
 8012cc6:	9062      	ld.w      	r3, (r0, 0x8)
{
 8012cc8:	6d0b      	mov      	r4, r2
    crc = crc16(matrix_test(N, C, A, B, val), crc);
 8012cca:	9023      	ld.w      	r1, (r0, 0xc)
 8012ccc:	9041      	ld.w      	r2, (r0, 0x4)
 8012cce:	9000      	ld.w      	r0, (r0, 0x0)
 8012cd0:	e3fffdbc 	bsr      	0x8012848	// 8012848 <matrix_test>
 8012cd4:	6c53      	mov      	r1, r4
 8012cd6:	e000052b 	bsr      	0x801372c	// 801372c <crc16>
}
 8012cda:	1401      	addi      	r14, r14, 4
 8012cdc:	1491      	pop      	r4, r15
	...

08012ce0 <core_init_matrix>:
{
 8012ce0:	14c1      	push      	r4
 8012ce2:	c4004832 	lsli      	r18, r0, 0
        seed = 1;
 8012ce6:	3a40      	cmpnei      	r2, 0
 8012ce8:	3001      	movi      	r0, 1
 8012cea:	c4400c20 	incf      	r2, r0, 0
    while (j < blksize)
 8012cee:	e912005e 	bez      	r18, 0x8012daa	// 8012daa <core_init_matrix+0xca>
 8012cf2:	3000      	movi      	r0, 0
 8012cf4:	0402      	br      	0x8012cf8	// 8012cf8 <core_init_matrix+0x18>
        i++;
 8012cf6:	6c37      	mov      	r0, r13
 8012cf8:	e5a00000 	addi      	r13, r0, 1
        j = i * i * 2 * 4;
 8012cfc:	c5ad842c 	mult      	r12, r13, r13
 8012d00:	c46c482c 	lsli      	r12, r12, 3
    while (j < blksize)
 8012d04:	c64c0420 	cmphs      	r12, r18
 8012d08:	0ff7      	bf      	0x8012cf6	// 8012cf6 <core_init_matrix+0x16>
    A = (MATDAT *)align_mem(memblk);
 8012d0a:	2900      	subi      	r1, 1
 8012d0c:	3980      	bclri      	r1, 0
 8012d0e:	3981      	bclri      	r1, 1
    B = A + N * N;
 8012d10:	c4008424 	mult      	r4, r0, r0
    A = (MATDAT *)align_mem(memblk);
 8012d14:	e7210003 	addi      	r25, r1, 4
    B = A + N * N;
 8012d18:	6110      	addu      	r4, r4
 8012d1a:	c4990036 	addu      	r22, r25, r4
 8012d1e:	c4004837 	lsli      	r23, r0, 0
    for (i = 0; i < N; i++)
 8012d22:	e9000036 	bez      	r0, 0x8012d8e	// 8012d8e <core_init_matrix+0xae>
    N = i - 1;
 8012d26:	ea150000 	movi      	r21, 0
 8012d2a:	ea120001 	movi      	r18, 1
            seed         = ((order * seed) % 65536);
 8012d2e:	ea38ffff 	movih      	r24, 65535
 8012d32:	c4158433 	mult      	r19, r21, r0
 8012d36:	c6730033 	addu      	r19, r19, r19
 8012d3a:	c6760034 	addu      	r20, r22, r19
    N = i - 1;
 8012d3e:	ea0c0000 	movi      	r12, 0
 8012d42:	c6790033 	addu      	r19, r25, r19
 8012d46:	0412      	br      	0x8012d6a	// 8012d6a <core_init_matrix+0x8a>
            val          = (seed + order);
 8012d48:	c41255e1 	zext      	r1, r18, 15, 0
 8012d4c:	c441002d 	addu      	r13, r1, r2
 8012d50:	7775      	zexth      	r13, r13
            val          = (val + order);
 8012d52:	6074      	addu      	r1, r13
            val          = matrix_clip(val, 1);
 8012d54:	7444      	zextb      	r1, r1
            B[i * N + j] = val;
 8012d56:	d594044d 	str.h      	r13, (r20, r12 << 1)
            A[i * N + j] = val;
 8012d5a:	d5930441 	str.h      	r1, (r19, r12 << 1)
        for (j = 0; j < N; j++)
 8012d5e:	e58c0000 	addi      	r12, r12, 1
 8012d62:	6430      	cmphs      	r12, r0
            order++;
 8012d64:	e6520000 	addi      	r18, r18, 1
        for (j = 0; j < N; j++)
 8012d68:	080e      	bt      	0x8012d84	// 8012d84 <core_init_matrix+0xa4>
            seed         = ((order * seed) % 65536);
 8012d6a:	ea218001 	movih      	r1, 32769
 8012d6e:	c6428422 	mult      	r2, r2, r18
 8012d72:	2900      	subi      	r1, 1
 8012d74:	6884      	and      	r2, r1
 8012d76:	e9a2ffe9 	bhsz      	r2, 0x8012d48	// 8012d48 <core_init_matrix+0x68>
 8012d7a:	2a00      	subi      	r2, 1
 8012d7c:	c7022422 	or      	r2, r2, r24
 8012d80:	2200      	addi      	r2, 1
 8012d82:	07e3      	br      	0x8012d48	// 8012d48 <core_init_matrix+0x68>
    for (i = 0; i < N; i++)
 8012d84:	e6b50000 	addi      	r21, r21, 1
 8012d88:	c4150420 	cmphs      	r21, r0
 8012d8c:	0fd3      	bf      	0x8012d32	// 8012d32 <core_init_matrix+0x52>
    p->C = (MATRES *)align_mem(B + N * N);
 8012d8e:	c4960022 	addu      	r2, r22, r4
 8012d92:	2a00      	subi      	r2, 1
 8012d94:	3a80      	bclri      	r2, 0
 8012d96:	3a81      	bclri      	r2, 1
 8012d98:	2203      	addi      	r2, 4
    p->A = A;
 8012d9a:	df232001 	st.w      	r25, (r3, 0x4)
    p->B = B;
 8012d9e:	dec32002 	st.w      	r22, (r3, 0x8)
    p->C = (MATRES *)align_mem(B + N * N);
 8012da2:	b343      	st.w      	r2, (r3, 0xc)
    p->N = N;
 8012da4:	dee32000 	st.w      	r23, (r3, 0x0)
}
 8012da8:	1481      	pop      	r4
    A = (MATDAT *)align_mem(memblk);
 8012daa:	e6c11000 	subi      	r22, r1, 1
    B = A + N * N;
 8012dae:	ea170000 	movi      	r23, 0
    A = (MATDAT *)align_mem(memblk);
 8012db2:	c4162836 	bclri      	r22, r22, 0
 8012db6:	c4362836 	bclri      	r22, r22, 1
    B = A + N * N;
 8012dba:	e6f71000 	subi      	r23, r23, 1
    A = (MATDAT *)align_mem(memblk);
 8012dbe:	e7360003 	addi      	r25, r22, 4
    B = A + N * N;
 8012dc2:	3402      	movi      	r4, 2
 8012dc4:	e6d60005 	addi      	r22, r22, 6
    N = i - 1;
 8012dc8:	c4174820 	lsli      	r0, r23, 0
 8012dcc:	07ad      	br      	0x8012d26	// 8012d26 <core_init_matrix+0x46>
	...

08012dd0 <start_time>:
*/
CORETIMETYPE
barebones_clock()
{
	extern __IO uint32_t uwTick;
	return uwTick;
 8012dd0:	1063      	lrw      	r3, 0x20001384	// 8012ddc <start_time+0xc>
 8012dd2:	9340      	ld.w      	r2, (r3, 0x0)
   cycles to 0.
*/
void
start_time(void)
{
    GETMYTIME(&start_time_val);
 8012dd4:	1063      	lrw      	r3, 0x2000137c	// 8012de0 <start_time+0x10>
 8012dd6:	b340      	st.w      	r2, (r3, 0x0)
}
 8012dd8:	783c      	jmp      	r15
 8012dda:	0000      	.short	0x0000
 8012ddc:	20001384 	.long	0x20001384
 8012de0:	2000137c 	.long	0x2000137c

08012de4 <stop_time>:
	return uwTick;
 8012de4:	1063      	lrw      	r3, 0x20001384	// 8012df0 <stop_time+0xc>
 8012de6:	9340      	ld.w      	r2, (r3, 0x0)
   cpu cycles counter.
*/
void
stop_time(void)
{
    GETMYTIME(&stop_time_val);
 8012de8:	1063      	lrw      	r3, 0x20001380	// 8012df4 <stop_time+0x10>
 8012dea:	b340      	st.w      	r2, (r3, 0x0)
}
 8012dec:	783c      	jmp      	r15
 8012dee:	0000      	.short	0x0000
 8012df0:	20001384 	.long	0x20001384
 8012df4:	20001380 	.long	0x20001380

08012df8 <get_time>:
*/
CORE_TICKS
get_time(void)
{
    CORE_TICKS elapsed
        = (CORE_TICKS)(MYTIMEDIFF(stop_time_val, start_time_val));
 8012df8:	1063      	lrw      	r3, 0x20001380	// 8012e04 <get_time+0xc>
    CORE_TICKS elapsed
 8012dfa:	9300      	ld.w      	r0, (r3, 0x0)
 8012dfc:	1063      	lrw      	r3, 0x2000137c	// 8012e08 <get_time+0x10>
 8012dfe:	9360      	ld.w      	r3, (r3, 0x0)
    return elapsed;
}
 8012e00:	600e      	subu      	r0, r3
 8012e02:	783c      	jmp      	r15
 8012e04:	20001380 	.long	0x20001380
 8012e08:	2000137c 	.long	0x2000137c

08012e0c <time_in_secs>:
   floating point. Default implementation implemented by the EE_TICKS_PER_SEC
   macro above.
*/
secs_ret
time_in_secs(CORE_TICKS ticks)
{
 8012e0c:	14d0      	push      	r15
    secs_ret retval = ((secs_ret)ticks) / (secs_ret)EE_TICKS_PER_SEC;
 8012e0e:	e3fff337 	bsr      	0x801147c	// 801147c <__floatunsidf>
 8012e12:	3200      	movi      	r2, 0
 8012e14:	ea23408f 	movih      	r3, 16527
 8012e18:	3bae      	bseti      	r3, 14
 8012e1a:	e3fff1c1 	bsr      	0x801119c	// 801119c <__divdf3>
    return retval;
}
 8012e1e:	1490      	pop      	r15

08012e20 <portable_init>:
        Target specific initialization code
        Test for some common mistakes.
*/
void
portable_init(core_portable *p, int *argc, char *argv[])
{
 8012e20:	14d1      	push      	r4, r15
 8012e22:	6d03      	mov      	r4, r0

	SystemClock_Config(CPU_CLK_240M);
 8012e24:	3002      	movi      	r0, 2
 8012e26:	e3fff5f7 	bsr      	0x8011a14	// 8011a14 <SystemClock_Config>
	HAL_Init();
 8012e2a:	e3fff62d 	bsr      	0x8011a84	// 8011a84 <HAL_Init>
    }
    if (sizeof(ee_u32) != 4)
    {
        ee_printf("ERROR! Please define ee_u32 to a 32b unsigned type!\n");
    }
    p->portable_id = 1;
 8012e2e:	3301      	movi      	r3, 1
 8012e30:	a460      	st.b      	r3, (r4, 0x0)
}
 8012e32:	1491      	pop      	r4, r15

08012e34 <portable_fini>:
        Target specific final code
*/
void
portable_fini(core_portable *p)
{
    p->portable_id = 0;
 8012e34:	3300      	movi      	r3, 0
 8012e36:	a060      	st.b      	r3, (r0, 0x0)
}
 8012e38:	783c      	jmp      	r15
	...

08012e3c <core_init_state>:
        The seed parameter MUST be supplied from a source that cannot be
   determined at compile time
*/
void
core_init_state(ee_u32 size, ee_s16 seed, ee_u8 *p)
{
 8012e3c:	14d1      	push      	r4, r15
    ee_u8 *buf = 0;
#if CORE_DEBUG
    ee_u8 *start = p;
    ee_printf("State: %d,%d\n", size, seed);
#endif
    size--;
 8012e3e:	e6801000 	subi      	r20, r0, 1
    next = 0;
    while ((total + next + 1) < size)
 8012e42:	3301      	movi      	r3, 1
 8012e44:	c6830420 	cmphs      	r3, r20
{
 8012e48:	c4024833 	lsli      	r19, r2, 0
    while ((total + next + 1) < size)
 8012e4c:	088f      	bt      	0x8012f6a	// 8012f6a <core_init_state+0x12e>
 8012e4e:	604c      	addu      	r1, r3
 8012e50:	7445      	zexth      	r1, r1
                *(p + total + i) = buf[i];
            *(p + total + i) = ',';
            total += next + 1;
        }
        seed++;
        switch (seed & 0x7)
 8012e52:	e4612007 	andi      	r3, r1, 7
 8012e56:	2b02      	subi      	r3, 3
 8012e58:	74cd      	zexth      	r3, r3
 8012e5a:	3b04      	cmphsi      	r3, 5
    while ((total + next + 1) < size)
 8012e5c:	ea0c0000 	movi      	r12, 0
        {
            case 0: /* int */
            case 1: /* int */
            case 2: /* int */
                buf  = intpat[(seed >> 3) & 0x3];
 8012e60:	1089      	lrw      	r4, 0x80166e4	// 8012e84 <core_init_state+0x48>
        switch (seed & 0x7)
 8012e62:	ea95000a 	lrw      	r21, 0x80166b0	// 8012e88 <core_init_state+0x4c>
            case 6: /* scientific */
                buf  = scipat[(seed >> 3) & 0x3];
                next = 8;
                break;
            case 7: /* invalid */
                buf  = errpat[(seed >> 3) & 0x3];
 8012e66:	ea99000a 	lrw      	r25, 0x80166c4	// 8012e8c <core_init_state+0x50>
                buf  = scipat[(seed >> 3) & 0x3];
 8012e6a:	ea98000a 	lrw      	r24, 0x80166f4	// 8012e90 <core_init_state+0x54>
                buf  = floatpat[(seed >> 3) & 0x3];
 8012e6e:	ea97000a 	lrw      	r23, 0x80166d4	// 8012e94 <core_init_state+0x58>
            *(p + total + i) = ',';
 8012e72:	ea16002c 	movi      	r22, 44
        seed++;
 8012e76:	7487      	sexth      	r2, r1
        switch (seed & 0x7)
 8012e78:	0851      	bt      	0x8012f1a	// 8012f1a <core_init_state+0xde>
 8012e7a:	d0750883 	ldr.w      	r3, (r21, r3 << 2)
                buf  = errpat[(seed >> 3) & 0x3];
 8012e7e:	c4625482 	zext      	r2, r2, 4, 3
        switch (seed & 0x7)
 8012e82:	780c      	jmp      	r3
 8012e84:	080166e4 	.long	0x080166e4
 8012e88:	080166b0 	.long	0x080166b0
 8012e8c:	080166c4 	.long	0x080166c4
 8012e90:	080166f4 	.long	0x080166f4
 8012e94:	080166d4 	.long	0x080166d4
    while ((total + next + 1) < size)
 8012e98:	e64c0008 	addi      	r18, r12, 9
 8012e9c:	c6920420 	cmphs      	r18, r20
                buf  = floatpat[(seed >> 3) & 0x3];
 8012ea0:	d0570883 	ldr.w      	r3, (r23, r2 << 2)
    while ((total + next + 1) < size)
 8012ea4:	084e      	bt      	0x8012f40	// 8012f40 <core_init_state+0x104>
                next = 8;
 8012ea6:	ea0d0008 	movi      	r13, 8
                *(p + total + i) = buf[i];
 8012eaa:	8340      	ld.b      	r2, (r3, 0x0)
 8012eac:	d5930022 	str.b      	r2, (r19, r12 << 0)
 8012eb0:	c5930022 	addu      	r2, r19, r12
 8012eb4:	d9830001 	ld.b      	r12, (r3, 0x1)
 8012eb8:	dd820001 	st.b      	r12, (r2, 0x1)
 8012ebc:	d9830002 	ld.b      	r12, (r3, 0x2)
 8012ec0:	dd820002 	st.b      	r12, (r2, 0x2)
            for (i = 0; i < next; i++)
 8012ec4:	eb4d0004 	cmpnei      	r13, 4
                *(p + total + i) = buf[i];
 8012ec8:	d9830003 	ld.b      	r12, (r3, 0x3)
 8012ecc:	dd820003 	st.b      	r12, (r2, 0x3)
            for (i = 0; i < next; i++)
 8012ed0:	0c18      	bf      	0x8012f00	// 8012f00 <core_init_state+0xc4>
 8012ed2:	eb4d0005 	cmpnei      	r13, 5
                *(p + total + i) = buf[i];
 8012ed6:	d9830004 	ld.b      	r12, (r3, 0x4)
 8012eda:	dd820004 	st.b      	r12, (r2, 0x4)
            for (i = 0; i < next; i++)
 8012ede:	0c11      	bf      	0x8012f00	// 8012f00 <core_init_state+0xc4>
 8012ee0:	eb4d0006 	cmpnei      	r13, 6
                *(p + total + i) = buf[i];
 8012ee4:	d9830005 	ld.b      	r12, (r3, 0x5)
 8012ee8:	dd820005 	st.b      	r12, (r2, 0x5)
            for (i = 0; i < next; i++)
 8012eec:	0c0a      	bf      	0x8012f00	// 8012f00 <core_init_state+0xc4>
 8012eee:	eb4d0008 	cmpnei      	r13, 8
                *(p + total + i) = buf[i];
 8012ef2:	d9830006 	ld.b      	r12, (r3, 0x6)
 8012ef6:	dd820006 	st.b      	r12, (r2, 0x6)
            for (i = 0; i < next; i++)
 8012efa:	0835      	bt      	0x8012f64	// 8012f64 <core_init_state+0x128>
                *(p + total + i) = buf[i];
 8012efc:	8367      	ld.b      	r3, (r3, 0x7)
 8012efe:	a267      	st.b      	r3, (r2, 0x7)
 8012f00:	2100      	addi      	r1, 1
 8012f02:	7445      	zexth      	r1, r1
        switch (seed & 0x7)
 8012f04:	e4612007 	andi      	r3, r1, 7
 8012f08:	2b02      	subi      	r3, 3
 8012f0a:	74cd      	zexth      	r3, r3
 8012f0c:	3b04      	cmphsi      	r3, 5
            *(p + total + i) = ',';
 8012f0e:	d5a20036 	str.b      	r22, (r2, r13 << 0)
 8012f12:	c412482c 	lsli      	r12, r18, 0
        seed++;
 8012f16:	7487      	sexth      	r2, r1
        switch (seed & 0x7)
 8012f18:	0fb1      	bf      	0x8012e7a	// 8012e7a <core_init_state+0x3e>
    while ((total + next + 1) < size)
 8012f1a:	e64c0004 	addi      	r18, r12, 5
 8012f1e:	c6920420 	cmphs      	r18, r20
                buf  = intpat[(seed >> 3) & 0x3];
 8012f22:	c4625482 	zext      	r2, r2, 4, 3
 8012f26:	d0440883 	ldr.w      	r3, (r4, r2 << 2)
    while ((total + next + 1) < size)
 8012f2a:	080b      	bt      	0x8012f40	// 8012f40 <core_init_state+0x104>
                next = 4;
 8012f2c:	ea0d0004 	movi      	r13, 4
 8012f30:	07bd      	br      	0x8012eaa	// 8012eaa <core_init_state+0x6e>
    while ((total + next + 1) < size)
 8012f32:	e64c0008 	addi      	r18, r12, 9
 8012f36:	c6920420 	cmphs      	r18, r20
                buf  = scipat[(seed >> 3) & 0x3];
 8012f3a:	d0580883 	ldr.w      	r3, (r24, r2 << 2)
    while ((total + next + 1) < size)
 8012f3e:	0fb4      	bf      	0x8012ea6	// 8012ea6 <core_init_state+0x6a>
            default: /* Never happen, just to make some compilers happy */
                break;
        }
    }
    size++;
    while (total < size)
 8012f40:	6430      	cmphs      	r12, r0
 8012f42:	0808      	bt      	0x8012f52	// 8012f52 <core_init_state+0x116>
 8012f44:	c5800082 	subu      	r2, r0, r12
 8012f48:	3100      	movi      	r1, 0
 8012f4a:	c5930020 	addu      	r0, r19, r12
 8012f4e:	e3fff4bf 	bsr      	0x80118cc	// 80118cc <__memset_fast>
        total++;
    }
#if CORE_DEBUG
    ee_printf("State Input: %s\n", start);
#endif
}
 8012f52:	1491      	pop      	r4, r15
    while ((total + next + 1) < size)
 8012f54:	e64c0008 	addi      	r18, r12, 9
 8012f58:	c6920420 	cmphs      	r18, r20
                buf  = errpat[(seed >> 3) & 0x3];
 8012f5c:	d0590883 	ldr.w      	r3, (r25, r2 << 2)
    while ((total + next + 1) < size)
 8012f60:	0fa3      	bf      	0x8012ea6	// 8012ea6 <core_init_state+0x6a>
 8012f62:	07ef      	br      	0x8012f40	// 8012f40 <core_init_state+0x104>
            for (i = 0; i < next; i++)
 8012f64:	ea0d0007 	movi      	r13, 7
 8012f68:	07cc      	br      	0x8012f00	// 8012f00 <core_init_state+0xc4>
    ee_u32 total = 0, next = 0, i;
 8012f6a:	ea0c0000 	movi      	r12, 0
 8012f6e:	07eb      	br      	0x8012f44	// 8012f44 <core_init_state+0x108>

08012f70 <core_state_transition>:
*/

enum CORE_STATE
core_state_transition(ee_u8 **instr, ee_u32 *transition_count)
{
    ee_u8 *         str = *instr;
 8012f70:	d9802000 	ld.w      	r12, (r0, 0x0)
    ee_u8           NEXT_SYMBOL;
    enum CORE_STATE state = CORE_START;
    for (; *str && state != CORE_INVALID; str++)
 8012f74:	d86c0000 	ld.b      	r3, (r12, 0x0)
 8012f78:	e9030102 	bez      	r3, 0x801317c	// 801317c <core_state_transition+0x20c>
    {
        NEXT_SYMBOL = *str;
        if (NEXT_SYMBOL == ',') /* end of this input */
 8012f7c:	eb43002c 	cmpnei      	r3, 44
 8012f80:	0d17      	bf      	0x80131ae	// 80131ae <core_state_transition+0x23e>
    retval = ((c >= '0') & (c <= '9')) ? 1 : 0;
 8012f82:	e443102f 	subi      	r2, r3, 48
 8012f86:	7488      	zextb      	r2, r2
 8012f88:	3a09      	cmphsi      	r2, 10
 8012f8a:	0c16      	bf      	0x8012fb6	// 8012fb6 <core_state_transition+0x46>
            case CORE_START:
                if (ee_isdigit(NEXT_SYMBOL))
                {
                    state = CORE_INT;
                }
                else if (NEXT_SYMBOL == '+' || NEXT_SYMBOL == '-')
 8012f8c:	eb43002b 	cmpnei      	r3, 43
 8012f90:	0c3c      	bf      	0x8013008	// 8013008 <core_state_transition+0x98>
 8012f92:	eb43002d 	cmpnei      	r3, 45
 8012f96:	0c39      	bf      	0x8013008	// 8013008 <core_state_transition+0x98>
                {
                    state = CORE_S1;
                }
                else if (NEXT_SYMBOL == '.')
 8012f98:	eb43002e 	cmpnei      	r3, 46
 8012f9c:	0ce3      	bf      	0x8013162	// 8013162 <core_state_transition+0x1f2>
                    state = CORE_FLOAT;
                }
                else
                {
                    state = CORE_INVALID;
                    transition_count[CORE_INVALID]++;
 8012f9e:	9161      	ld.w      	r3, (r1, 0x4)
 8012fa0:	2300      	addi      	r3, 1
 8012fa2:	b161      	st.w      	r3, (r1, 0x4)
                }
                transition_count[CORE_START]++;
 8012fa4:	9160      	ld.w      	r3, (r1, 0x0)
 8012fa6:	2300      	addi      	r3, 1
 8012fa8:	b160      	st.w      	r3, (r1, 0x0)
    for (; *str && state != CORE_INVALID; str++)
 8012faa:	e44c0000 	addi      	r2, r12, 1
                    state = CORE_INVALID;
 8012fae:	3301      	movi      	r3, 1
                break;
            default:
                break;
        }
    }
    *instr = str;
 8012fb0:	b040      	st.w      	r2, (r0, 0x0)
    return state;
}
 8012fb2:	6c0f      	mov      	r0, r3
 8012fb4:	783c      	jmp      	r15
                transition_count[CORE_START]++;
 8012fb6:	9160      	ld.w      	r3, (r1, 0x0)
 8012fb8:	2300      	addi      	r3, 1
 8012fba:	b160      	st.w      	r3, (r1, 0x0)
    for (; *str && state != CORE_INVALID; str++)
 8012fbc:	d86c0001 	ld.b      	r3, (r12, 0x1)
 8012fc0:	e44c0000 	addi      	r2, r12, 1
 8012fc4:	e903003e 	bez      	r3, 0x8013040	// 8013040 <core_state_transition+0xd0>
        if (NEXT_SYMBOL == ',') /* end of this input */
 8012fc8:	eb43002c 	cmpnei      	r3, 44
 8012fcc:	0c11      	bf      	0x8012fee	// 8012fee <core_state_transition+0x7e>
    retval = ((c >= '0') & (c <= '9')) ? 1 : 0;
 8012fce:	ea0c0009 	movi      	r12, 9
                if (NEXT_SYMBOL == '.')
 8012fd2:	eb43002e 	cmpnei      	r3, 46
 8012fd6:	0c45      	bf      	0x8013060	// 8013060 <core_state_transition+0xf0>
    retval = ((c >= '0') & (c <= '9')) ? 1 : 0;
 8012fd8:	2b2f      	subi      	r3, 48
 8012fda:	74cc      	zextb      	r3, r3
 8012fdc:	64f0      	cmphs      	r12, r3
 8012fde:	0c0d      	bf      	0x8012ff8	// 8012ff8 <core_state_transition+0x88>
    for (; *str && state != CORE_INVALID; str++)
 8012fe0:	2200      	addi      	r2, 1
 8012fe2:	8260      	ld.b      	r3, (r2, 0x0)
 8012fe4:	e903002e 	bez      	r3, 0x8013040	// 8013040 <core_state_transition+0xd0>
        if (NEXT_SYMBOL == ',') /* end of this input */
 8012fe8:	eb43002c 	cmpnei      	r3, 44
 8012fec:	0bf3      	bt      	0x8012fd2	// 8012fd2 <core_state_transition+0x62>
 8012fee:	3304      	movi      	r3, 4
            str++;
 8012ff0:	2200      	addi      	r2, 1
    *instr = str;
 8012ff2:	b040      	st.w      	r2, (r0, 0x0)
}
 8012ff4:	6c0f      	mov      	r0, r3
 8012ff6:	783c      	jmp      	r15
                    transition_count[CORE_INT]++;
 8012ff8:	9164      	ld.w      	r3, (r1, 0x10)
 8012ffa:	2300      	addi      	r3, 1
 8012ffc:	b164      	st.w      	r3, (r1, 0x10)
    for (; *str && state != CORE_INVALID; str++)
 8012ffe:	2200      	addi      	r2, 1
                    state = CORE_INVALID;
 8013000:	3301      	movi      	r3, 1
    *instr = str;
 8013002:	b040      	st.w      	r2, (r0, 0x0)
}
 8013004:	6c0f      	mov      	r0, r3
 8013006:	783c      	jmp      	r15
                transition_count[CORE_START]++;
 8013008:	9160      	ld.w      	r3, (r1, 0x0)
 801300a:	2300      	addi      	r3, 1
 801300c:	b160      	st.w      	r3, (r1, 0x0)
    for (; *str && state != CORE_INVALID; str++)
 801300e:	d84c0001 	ld.b      	r2, (r12, 0x1)
 8013012:	e64c0000 	addi      	r18, r12, 1
 8013016:	e90200c8 	bez      	r2, 0x80131a6	// 80131a6 <core_state_transition+0x236>
        if (NEXT_SYMBOL == ',') /* end of this input */
 801301a:	eb42002c 	cmpnei      	r2, 44
 801301e:	0cbf      	bf      	0x801319c	// 801319c <core_state_transition+0x22c>
    retval = ((c >= '0') & (c <= '9')) ? 1 : 0;
 8013020:	e462102f 	subi      	r3, r2, 48
 8013024:	74cc      	zextb      	r3, r3
 8013026:	ea0c0009 	movi      	r12, 9
 801302a:	64f0      	cmphs      	r12, r3
 801302c:	0c0e      	bf      	0x8013048	// 8013048 <core_state_transition+0xd8>
                    transition_count[CORE_S1]++;
 801302e:	9162      	ld.w      	r3, (r1, 0x8)
 8013030:	2300      	addi      	r3, 1
 8013032:	b162      	st.w      	r3, (r1, 0x8)
    for (; *str && state != CORE_INVALID; str++)
 8013034:	d8720001 	ld.b      	r3, (r18, 0x1)
 8013038:	e4520000 	addi      	r2, r18, 1
 801303c:	e923ffc6 	bnez      	r3, 0x8012fc8	// 8012fc8 <core_state_transition+0x58>
                    state = CORE_INT;
 8013040:	3304      	movi      	r3, 4
    *instr = str;
 8013042:	b040      	st.w      	r2, (r0, 0x0)
}
 8013044:	6c0f      	mov      	r0, r3
 8013046:	783c      	jmp      	r15
                else if (NEXT_SYMBOL == '.')
 8013048:	eb42002e 	cmpnei      	r2, 46
 801304c:	0c7f      	bf      	0x801314a	// 801314a <core_state_transition+0x1da>
                    transition_count[CORE_S1]++;
 801304e:	9162      	ld.w      	r3, (r1, 0x8)
 8013050:	2300      	addi      	r3, 1
 8013052:	b162      	st.w      	r3, (r1, 0x8)
    for (; *str && state != CORE_INVALID; str++)
 8013054:	e4520000 	addi      	r2, r18, 1
                    state = CORE_INVALID;
 8013058:	3301      	movi      	r3, 1
    *instr = str;
 801305a:	b040      	st.w      	r2, (r0, 0x0)
}
 801305c:	6c0f      	mov      	r0, r3
 801305e:	783c      	jmp      	r15
                    transition_count[CORE_INT]++;
 8013060:	9164      	ld.w      	r3, (r1, 0x10)
 8013062:	2300      	addi      	r3, 1
 8013064:	b164      	st.w      	r3, (r1, 0x10)
    for (; *str && state != CORE_INVALID; str++)
 8013066:	8261      	ld.b      	r3, (r2, 0x1)
 8013068:	e5a20000 	addi      	r13, r2, 1
 801306c:	e9030078 	bez      	r3, 0x801315c	// 801315c <core_state_transition+0x1ec>
        if (NEXT_SYMBOL == ',') /* end of this input */
 8013070:	eb43002c 	cmpnei      	r3, 44
 8013074:	0c90      	bf      	0x8013194	// 8013194 <core_state_transition+0x224>
    retval = ((c >= '0') & (c <= '9')) ? 1 : 0;
 8013076:	ea0c0009 	movi      	r12, 9
                if (NEXT_SYMBOL == 'E' || NEXT_SYMBOL == 'e')
 801307a:	e44320df 	andi      	r2, r3, 223
 801307e:	eb420045 	cmpnei      	r2, 69
 8013082:	0c10      	bf      	0x80130a2	// 80130a2 <core_state_transition+0x132>
    retval = ((c >= '0') & (c <= '9')) ? 1 : 0;
 8013084:	2b2f      	subi      	r3, 48
 8013086:	74cc      	zextb      	r3, r3
 8013088:	64f0      	cmphs      	r12, r3
 801308a:	0c59      	bf      	0x801313c	// 801313c <core_state_transition+0x1cc>
    for (; *str && state != CORE_INVALID; str++)
 801308c:	d86d0001 	ld.b      	r3, (r13, 0x1)
 8013090:	e44d0000 	addi      	r2, r13, 1
 8013094:	e9030091 	bez      	r3, 0x80131b6	// 80131b6 <core_state_transition+0x246>
        if (NEXT_SYMBOL == ',') /* end of this input */
 8013098:	eb43002c 	cmpnei      	r3, 44
 801309c:	0c7d      	bf      	0x8013196	// 8013196 <core_state_transition+0x226>
 801309e:	6f4b      	mov      	r13, r2
 80130a0:	07ed      	br      	0x801307a	// 801307a <core_state_transition+0x10a>
                    transition_count[CORE_FLOAT]++;
 80130a2:	9165      	ld.w      	r3, (r1, 0x14)
 80130a4:	2300      	addi      	r3, 1
 80130a6:	b165      	st.w      	r3, (r1, 0x14)
    for (; *str && state != CORE_INVALID; str++)
 80130a8:	d86d0001 	ld.b      	r3, (r13, 0x1)
 80130ac:	e44d0000 	addi      	r2, r13, 1
 80130b0:	e9030068 	bez      	r3, 0x8013180	// 8013180 <core_state_transition+0x210>
        if (NEXT_SYMBOL == ',') /* end of this input */
 80130b4:	eb43002c 	cmpnei      	r3, 44
 80130b8:	0c66      	bf      	0x8013184	// 8013184 <core_state_transition+0x214>
                if (NEXT_SYMBOL == '+' || NEXT_SYMBOL == '-')
 80130ba:	eb43002b 	cmpnei      	r3, 43
 80130be:	0c0b      	bf      	0x80130d4	// 80130d4 <core_state_transition+0x164>
 80130c0:	eb43002d 	cmpnei      	r3, 45
 80130c4:	0c08      	bf      	0x80130d4	// 80130d4 <core_state_transition+0x164>
                    transition_count[CORE_S2]++;
 80130c6:	9163      	ld.w      	r3, (r1, 0xc)
 80130c8:	2300      	addi      	r3, 1
 80130ca:	b163      	st.w      	r3, (r1, 0xc)
    for (; *str && state != CORE_INVALID; str++)
 80130cc:	e44d0001 	addi      	r2, r13, 2
                    state = CORE_INVALID;
 80130d0:	3301      	movi      	r3, 1
 80130d2:	0798      	br      	0x8013002	// 8013002 <core_state_transition+0x92>
                    transition_count[CORE_S2]++;
 80130d4:	9163      	ld.w      	r3, (r1, 0xc)
 80130d6:	2300      	addi      	r3, 1
 80130d8:	b163      	st.w      	r3, (r1, 0xc)
    for (; *str && state != CORE_INVALID; str++)
 80130da:	d86d0002 	ld.b      	r3, (r13, 0x2)
 80130de:	e44d0001 	addi      	r2, r13, 2
 80130e2:	e9030054 	bez      	r3, 0x801318a	// 801318a <core_state_transition+0x21a>
        if (NEXT_SYMBOL == ',') /* end of this input */
 80130e6:	eb43002c 	cmpnei      	r3, 44
 80130ea:	0c52      	bf      	0x801318e	// 801318e <core_state_transition+0x21e>
    retval = ((c >= '0') & (c <= '9')) ? 1 : 0;
 80130ec:	2b2f      	subi      	r3, 48
 80130ee:	74cc      	zextb      	r3, r3
 80130f0:	3209      	movi      	r2, 9
 80130f2:	64c8      	cmphs      	r2, r3
 80130f4:	0c17      	bf      	0x8013122	// 8013122 <core_state_transition+0x1b2>
                    transition_count[CORE_EXPONENT]++;
 80130f6:	9166      	ld.w      	r3, (r1, 0x18)
 80130f8:	2300      	addi      	r3, 1
 80130fa:	b166      	st.w      	r3, (r1, 0x18)
    for (; *str && state != CORE_INVALID; str++)
 80130fc:	d86d0003 	ld.b      	r3, (r13, 0x3)
 8013100:	e44d0002 	addi      	r2, r13, 3
 8013104:	e903000d 	bez      	r3, 0x801311e	// 801311e <core_state_transition+0x1ae>
        if (NEXT_SYMBOL == ',') /* end of this input */
 8013108:	eb43002c 	cmpnei      	r3, 44
 801310c:	0c35      	bf      	0x8013176	// 8013176 <core_state_transition+0x206>
    retval = ((c >= '0') & (c <= '9')) ? 1 : 0;
 801310e:	2b2f      	subi      	r3, 48
 8013110:	74cc      	zextb      	r3, r3
 8013112:	3b09      	cmphsi      	r3, 10
 8013114:	080e      	bt      	0x8013130	// 8013130 <core_state_transition+0x1c0>
    for (; *str && state != CORE_INVALID; str++)
 8013116:	2200      	addi      	r2, 1
 8013118:	8260      	ld.b      	r3, (r2, 0x0)
 801311a:	e923fff7 	bnez      	r3, 0x8013108	// 8013108 <core_state_transition+0x198>
                    state = CORE_SCIENTIFIC;
 801311e:	3307      	movi      	r3, 7
 8013120:	0771      	br      	0x8013002	// 8013002 <core_state_transition+0x92>
                    transition_count[CORE_EXPONENT]++;
 8013122:	9166      	ld.w      	r3, (r1, 0x18)
 8013124:	2300      	addi      	r3, 1
 8013126:	b166      	st.w      	r3, (r1, 0x18)
    for (; *str && state != CORE_INVALID; str++)
 8013128:	e44d0002 	addi      	r2, r13, 3
                    state = CORE_INVALID;
 801312c:	3301      	movi      	r3, 1
 801312e:	076a      	br      	0x8013002	// 8013002 <core_state_transition+0x92>
                    transition_count[CORE_INVALID]++;
 8013130:	9161      	ld.w      	r3, (r1, 0x4)
 8013132:	2300      	addi      	r3, 1
 8013134:	b161      	st.w      	r3, (r1, 0x4)
    for (; *str && state != CORE_INVALID; str++)
 8013136:	2200      	addi      	r2, 1
                    state = CORE_INVALID;
 8013138:	3301      	movi      	r3, 1
 801313a:	0764      	br      	0x8013002	// 8013002 <core_state_transition+0x92>
                    transition_count[CORE_FLOAT]++;
 801313c:	9165      	ld.w      	r3, (r1, 0x14)
 801313e:	2300      	addi      	r3, 1
 8013140:	b165      	st.w      	r3, (r1, 0x14)
    for (; *str && state != CORE_INVALID; str++)
 8013142:	e44d0000 	addi      	r2, r13, 1
                    state = CORE_INVALID;
 8013146:	3301      	movi      	r3, 1
 8013148:	075d      	br      	0x8013002	// 8013002 <core_state_transition+0x92>
                    transition_count[CORE_S1]++;
 801314a:	9162      	ld.w      	r3, (r1, 0x8)
 801314c:	2300      	addi      	r3, 1
 801314e:	b162      	st.w      	r3, (r1, 0x8)
    for (; *str && state != CORE_INVALID; str++)
 8013150:	d8720001 	ld.b      	r3, (r18, 0x1)
 8013154:	e5b20000 	addi      	r13, r18, 1
 8013158:	e923ff8c 	bnez      	r3, 0x8013070	// 8013070 <core_state_transition+0x100>
 801315c:	6cb7      	mov      	r2, r13
                    state = CORE_FLOAT;
 801315e:	3305      	movi      	r3, 5
 8013160:	0751      	br      	0x8013002	// 8013002 <core_state_transition+0x92>
                transition_count[CORE_START]++;
 8013162:	9160      	ld.w      	r3, (r1, 0x0)
 8013164:	2300      	addi      	r3, 1
 8013166:	b160      	st.w      	r3, (r1, 0x0)
    for (; *str && state != CORE_INVALID; str++)
 8013168:	d86c0001 	ld.b      	r3, (r12, 0x1)
 801316c:	e5ac0000 	addi      	r13, r12, 1
 8013170:	e923ff80 	bnez      	r3, 0x8013070	// 8013070 <core_state_transition+0x100>
 8013174:	07f4      	br      	0x801315c	// 801315c <core_state_transition+0x1ec>
                    state = CORE_SCIENTIFIC;
 8013176:	3307      	movi      	r3, 7
            str++;
 8013178:	2200      	addi      	r2, 1
 801317a:	073c      	br      	0x8012ff2	// 8012ff2 <core_state_transition+0x82>
    for (; *str && state != CORE_INVALID; str++)
 801317c:	6cb3      	mov      	r2, r12
 801317e:	0742      	br      	0x8013002	// 8013002 <core_state_transition+0x92>
                    state = CORE_S2;
 8013180:	3303      	movi      	r3, 3
 8013182:	0740      	br      	0x8013002	// 8013002 <core_state_transition+0x92>
 8013184:	3303      	movi      	r3, 3
            str++;
 8013186:	2200      	addi      	r2, 1
 8013188:	0735      	br      	0x8012ff2	// 8012ff2 <core_state_transition+0x82>
                    state = CORE_EXPONENT;
 801318a:	3306      	movi      	r3, 6
 801318c:	073b      	br      	0x8013002	// 8013002 <core_state_transition+0x92>
 801318e:	3306      	movi      	r3, 6
            str++;
 8013190:	2200      	addi      	r2, 1
 8013192:	0730      	br      	0x8012ff2	// 8012ff2 <core_state_transition+0x82>
    for (; *str && state != CORE_INVALID; str++)
 8013194:	6cb7      	mov      	r2, r13
                    state = CORE_FLOAT;
 8013196:	3305      	movi      	r3, 5
            str++;
 8013198:	2200      	addi      	r2, 1
 801319a:	072c      	br      	0x8012ff2	// 8012ff2 <core_state_transition+0x82>
    for (; *str && state != CORE_INVALID; str++)
 801319c:	c4124822 	lsli      	r2, r18, 0
                    state = CORE_S1;
 80131a0:	3302      	movi      	r3, 2
            str++;
 80131a2:	2200      	addi      	r2, 1
 80131a4:	0727      	br      	0x8012ff2	// 8012ff2 <core_state_transition+0x82>
    for (; *str && state != CORE_INVALID; str++)
 80131a6:	c4124822 	lsli      	r2, r18, 0
                    state = CORE_S1;
 80131aa:	3302      	movi      	r3, 2
 80131ac:	072b      	br      	0x8013002	// 8013002 <core_state_transition+0x92>
        if (NEXT_SYMBOL == ',') /* end of this input */
 80131ae:	6cb3      	mov      	r2, r12
 80131b0:	3300      	movi      	r3, 0
            str++;
 80131b2:	2200      	addi      	r2, 1
 80131b4:	071f      	br      	0x8012ff2	// 8012ff2 <core_state_transition+0x82>
    for (; *str && state != CORE_INVALID; str++)
 80131b6:	3305      	movi      	r3, 5
 80131b8:	0725      	br      	0x8013002	// 8013002 <core_state_transition+0x92>
	...

080131bc <core_bench_state>:
{
 80131bc:	14d8      	push      	r4-r11, r15
 80131be:	1431      	subi      	r14, r14, 68
 80131c0:	1e09      	addi      	r6, r14, 36
 80131c2:	1d01      	addi      	r5, r14, 4
 80131c4:	6e8b      	mov      	r10, r2
    while (*p != 0)
 80131c6:	8140      	ld.b      	r2, (r1, 0x0)
{
 80131c8:	6e4f      	mov      	r9, r3
 80131ca:	3300      	movi      	r3, 0
 80131cc:	6ec3      	mov      	r11, r0
 80131ce:	6d07      	mov      	r4, r1
 80131d0:	d8ee5034 	ld.hs      	r7, (r14, 0x68)
 80131d4:	d90e1036 	ld.h      	r8, (r14, 0x6c)
    ee_u8 *p = memblock;
 80131d8:	b820      	st.w      	r1, (r14, 0x0)
 80131da:	b660      	st.w      	r3, (r6, 0x0)
 80131dc:	b661      	st.w      	r3, (r6, 0x4)
 80131de:	b662      	st.w      	r3, (r6, 0x8)
 80131e0:	b663      	st.w      	r3, (r6, 0xc)
 80131e2:	b664      	st.w      	r3, (r6, 0x10)
 80131e4:	b665      	st.w      	r3, (r6, 0x14)
 80131e6:	b666      	st.w      	r3, (r6, 0x18)
 80131e8:	b667      	st.w      	r3, (r6, 0x1c)
 80131ea:	b560      	st.w      	r3, (r5, 0x0)
 80131ec:	b561      	st.w      	r3, (r5, 0x4)
 80131ee:	b562      	st.w      	r3, (r5, 0x8)
 80131f0:	b563      	st.w      	r3, (r5, 0xc)
 80131f2:	b564      	st.w      	r3, (r5, 0x10)
 80131f4:	b565      	st.w      	r3, (r5, 0x14)
 80131f6:	b566      	st.w      	r3, (r5, 0x18)
 80131f8:	b567      	st.w      	r3, (r5, 0x1c)
    while (*p != 0)
 80131fa:	e9020051 	bez      	r2, 0x801329c	// 801329c <core_bench_state+0xe0>
        enum CORE_STATE fstate = core_state_transition(&p, track_counts);
 80131fe:	6c5b      	mov      	r1, r6
 8013200:	6c3b      	mov      	r0, r14
 8013202:	e3fffeb7 	bsr      	0x8012f70	// 8012f70 <core_state_transition>
        final_counts[fstate]++;
 8013206:	d0050883 	ldr.w      	r3, (r5, r0 << 2)
 801320a:	2300      	addi      	r3, 1
 801320c:	d4050883 	str.w      	r3, (r5, r0 << 2)
    while (*p != 0)
 8013210:	9860      	ld.w      	r3, (r14, 0x0)
 8013212:	8360      	ld.b      	r3, (r3, 0x0)
 8013214:	e923fff5 	bnez      	r3, 0x80131fe	// 80131fe <core_bench_state+0x42>
    while (p < (memblock + blksize))
 8013218:	62d0      	addu      	r11, r4
 801321a:	66d0      	cmphs      	r4, r11
 801321c:	8440      	ld.b      	r2, (r4, 0x0)
    p = memblock;
 801321e:	b880      	st.w      	r4, (r14, 0x0)
    while (p < (memblock + blksize))
 8013220:	0843      	bt      	0x80132a6	// 80132a6 <core_bench_state+0xea>
{
 8013222:	6cd3      	mov      	r3, r4
 8013224:	0402      	br      	0x8013228	// 8013228 <core_bench_state+0x6c>
 8013226:	8340      	ld.b      	r2, (r3, 0x0)
        if (*p != ',')
 8013228:	eb42002c 	cmpnei      	r2, 44
 801322c:	0c04      	bf      	0x8013234	// 8013234 <core_bench_state+0x78>
            *p ^= (ee_u8)seed1;
 801322e:	6ca9      	xor      	r2, r10
 8013230:	a340      	st.b      	r2, (r3, 0x0)
 8013232:	9860      	ld.w      	r3, (r14, 0x0)
        p += step;
 8013234:	60dc      	addu      	r3, r7
    while (p < (memblock + blksize))
 8013236:	66cc      	cmphs      	r3, r11
        p += step;
 8013238:	b860      	st.w      	r3, (r14, 0x0)
    while (p < (memblock + blksize))
 801323a:	0ff6      	bf      	0x8013226	// 8013226 <core_bench_state+0x6a>
    while (*p != 0)
 801323c:	8460      	ld.b      	r3, (r4, 0x0)
    p = memblock;
 801323e:	b880      	st.w      	r4, (r14, 0x0)
    while (*p != 0)
 8013240:	e9030036 	bez      	r3, 0x80132ac	// 80132ac <core_bench_state+0xf0>
        enum CORE_STATE fstate = core_state_transition(&p, track_counts);
 8013244:	6c5b      	mov      	r1, r6
 8013246:	6c3b      	mov      	r0, r14
 8013248:	e3fffe94 	bsr      	0x8012f70	// 8012f70 <core_state_transition>
        final_counts[fstate]++;
 801324c:	d0050883 	ldr.w      	r3, (r5, r0 << 2)
 8013250:	2300      	addi      	r3, 1
 8013252:	d4050883 	str.w      	r3, (r5, r0 << 2)
    while (*p != 0)
 8013256:	9860      	ld.w      	r3, (r14, 0x0)
 8013258:	8360      	ld.b      	r3, (r3, 0x0)
 801325a:	e923fff5 	bnez      	r3, 0x8013244	// 8013244 <core_bench_state+0x88>
    while (p < (memblock + blksize))
 801325e:	66d0      	cmphs      	r4, r11
    p = memblock;
 8013260:	b880      	st.w      	r4, (r14, 0x0)
    while (p < (memblock + blksize))
 8013262:	080c      	bt      	0x801327a	// 801327a <core_bench_state+0xbe>
        if (*p != ',')
 8013264:	8460      	ld.b      	r3, (r4, 0x0)
 8013266:	eb43002c 	cmpnei      	r3, 44
 801326a:	0c04      	bf      	0x8013272	// 8013272 <core_bench_state+0xb6>
            *p ^= (ee_u8)seed2;
 801326c:	6ce5      	xor      	r3, r9
 801326e:	a460      	st.b      	r3, (r4, 0x0)
 8013270:	9880      	ld.w      	r4, (r14, 0x0)
        p += step;
 8013272:	611c      	addu      	r4, r7
    while (p < (memblock + blksize))
 8013274:	66d0      	cmphs      	r4, r11
        p += step;
 8013276:	b880      	st.w      	r4, (r14, 0x0)
    while (p < (memblock + blksize))
 8013278:	0ff6      	bf      	0x8013264	// 8013264 <core_bench_state+0xa8>
{
 801327a:	3400      	movi      	r4, 0
        crc = crcu32(final_counts[i], crc);
 801327c:	6c63      	mov      	r1, r8
 801327e:	d0850880 	ldr.w      	r0, (r5, r4 << 2)
 8013282:	e00000ef 	bsr      	0x8013460	// 8013460 <crcu32>
        crc = crcu32(track_counts[i], crc);
 8013286:	6c43      	mov      	r1, r0
 8013288:	d0860880 	ldr.w      	r0, (r6, r4 << 2)
    for (i = 0; i < NUM_CORE_STATES; i++)
 801328c:	2400      	addi      	r4, 1
        crc = crcu32(track_counts[i], crc);
 801328e:	e00000e9 	bsr      	0x8013460	// 8013460 <crcu32>
    for (i = 0; i < NUM_CORE_STATES; i++)
 8013292:	3c48      	cmpnei      	r4, 8
        crc = crcu32(track_counts[i], crc);
 8013294:	6e03      	mov      	r8, r0
    for (i = 0; i < NUM_CORE_STATES; i++)
 8013296:	0bf3      	bt      	0x801327c	// 801327c <core_bench_state+0xc0>
}
 8013298:	1411      	addi      	r14, r14, 68
 801329a:	1498      	pop      	r4-r11, r15
    while (p < (memblock + blksize))
 801329c:	62c4      	addu      	r11, r1
 801329e:	66c4      	cmphs      	r1, r11
    p = memblock;
 80132a0:	b820      	st.w      	r1, (r14, 0x0)
    while (p < (memblock + blksize))
 80132a2:	0fc0      	bf      	0x8013222	// 8013222 <core_bench_state+0x66>
 80132a4:	07eb      	br      	0x801327a	// 801327a <core_bench_state+0xbe>
    while (*p != 0)
 80132a6:	e922ffcf 	bnez      	r2, 0x8013244	// 8013244 <core_bench_state+0x88>
 80132aa:	07e8      	br      	0x801327a	// 801327a <core_bench_state+0xbe>
    p = memblock;
 80132ac:	b880      	st.w      	r4, (r14, 0x0)
 80132ae:	07db      	br      	0x8013264	// 8013264 <core_bench_state+0xa8>

080132b0 <get_seed_32>:
extern volatile ee_s32 seed5_volatile;
ee_s32
get_seed_32(int i)
{
    ee_s32 retval;
    switch (i)
 80132b0:	3805      	cmphsi      	r0, 6
 80132b2:	0816      	bt      	0x80132de	// 80132de <get_seed_32+0x2e>
 80132b4:	1062      	lrw      	r3, 0x80167b4	// 80132bc <get_seed_32+0xc>
 80132b6:	d0030883 	ldr.w      	r3, (r3, r0 << 2)
 80132ba:	780c      	jmp      	r3
 80132bc:	080167b4 	.long	0x080167b4
            break;
        case 4:
            retval = seed4_volatile;
            break;
        case 5:
            retval = seed5_volatile;
 80132c0:	1069      	lrw      	r3, 0x20001378	// 80132e4 <get_seed_32+0x34>
 80132c2:	9300      	ld.w      	r0, (r3, 0x0)
        default:
            retval = 0;
            break;
    }
    return retval;
}
 80132c4:	783c      	jmp      	r15
            retval = seed1_volatile;
 80132c6:	1069      	lrw      	r3, 0x20001370	// 80132e8 <get_seed_32+0x38>
 80132c8:	9300      	ld.w      	r0, (r3, 0x0)
}
 80132ca:	783c      	jmp      	r15
            retval = seed2_volatile;
 80132cc:	1068      	lrw      	r3, 0x20001374	// 80132ec <get_seed_32+0x3c>
 80132ce:	9300      	ld.w      	r0, (r3, 0x0)
}
 80132d0:	783c      	jmp      	r15
            retval = seed3_volatile;
 80132d2:	1068      	lrw      	r3, 0x20000164	// 80132f0 <get_seed_32+0x40>
 80132d4:	9300      	ld.w      	r0, (r3, 0x0)
}
 80132d6:	783c      	jmp      	r15
            retval = seed4_volatile;
 80132d8:	1067      	lrw      	r3, 0x20000168	// 80132f4 <get_seed_32+0x44>
 80132da:	9300      	ld.w      	r0, (r3, 0x0)
}
 80132dc:	783c      	jmp      	r15
            retval = 0;
 80132de:	3000      	movi      	r0, 0
    return retval;
 80132e0:	07f2      	br      	0x80132c4	// 80132c4 <get_seed_32+0x14>
 80132e2:	0000      	.short	0x0000
 80132e4:	20001378 	.long	0x20001378
 80132e8:	20001370 	.long	0x20001370
 80132ec:	20001374 	.long	0x20001374
 80132f0:	20000164 	.long	0x20000164
 80132f4:	20000168 	.long	0x20000168

080132f8 <crcu16>:
    }
    return crc;
}
ee_u16
crcu16(ee_u16 newval, ee_u16 crc)
{
 80132f8:	4961      	lsri      	r3, r1, 1
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80132fa:	6c41      	xor      	r1, r0
 80132fc:	e4212001 	andi      	r1, r1, 1
            crc |= 0x8000;
 8013300:	ea0ca001 	movi      	r12, 40961
    crc = crcu8((ee_u8)(newval), crc);
 8013304:	7480      	zextb      	r2, r0
 8013306:	3940      	cmpnei      	r1, 0
            crc |= 0x8000;
 8013308:	6f0d      	xor      	r12, r3
 801330a:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 801330e:	4a21      	lsri      	r1, r2, 1
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013310:	6c4d      	xor      	r1, r3
 8013312:	e4212001 	andi      	r1, r1, 1
 8013316:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 8013318:	ea0ca001 	movi      	r12, 40961
 801331c:	3940      	cmpnei      	r1, 0
 801331e:	6f0d      	xor      	r12, r3
 8013320:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 8013324:	4a22      	lsri      	r1, r2, 2
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013326:	6c4d      	xor      	r1, r3
 8013328:	e4212001 	andi      	r1, r1, 1
 801332c:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 801332e:	ea0ca001 	movi      	r12, 40961
 8013332:	3940      	cmpnei      	r1, 0
 8013334:	6f0d      	xor      	r12, r3
 8013336:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 801333a:	4a23      	lsri      	r1, r2, 3
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 801333c:	6c4d      	xor      	r1, r3
 801333e:	e4212001 	andi      	r1, r1, 1
 8013342:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 8013344:	ea0ca001 	movi      	r12, 40961
 8013348:	3940      	cmpnei      	r1, 0
 801334a:	6f0d      	xor      	r12, r3
 801334c:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 8013350:	4a24      	lsri      	r1, r2, 4
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013352:	6c4d      	xor      	r1, r3
 8013354:	e4212001 	andi      	r1, r1, 1
 8013358:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 801335a:	ea0ca001 	movi      	r12, 40961
 801335e:	3940      	cmpnei      	r1, 0
 8013360:	6f0d      	xor      	r12, r3
 8013362:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 8013366:	4a25      	lsri      	r1, r2, 5
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013368:	6c4d      	xor      	r1, r3
 801336a:	e4212001 	andi      	r1, r1, 1
 801336e:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 8013370:	ea0ca001 	movi      	r12, 40961
 8013374:	3940      	cmpnei      	r1, 0
 8013376:	6f0d      	xor      	r12, r3
 8013378:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 801337c:	4a26      	lsri      	r1, r2, 6
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 801337e:	6c4d      	xor      	r1, r3
 8013380:	e4212001 	andi      	r1, r1, 1
 8013384:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 8013386:	ea0ca001 	movi      	r12, 40961
 801338a:	3940      	cmpnei      	r1, 0
 801338c:	6f0d      	xor      	r12, r3
 801338e:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 8013392:	4a27      	lsri      	r1, r2, 7
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013394:	e5832001 	andi      	r12, r3, 1
            crc |= 0x8000;
 8013398:	ea02a001 	movi      	r2, 40961
 801339c:	4b61      	lsri      	r3, r3, 1
 801339e:	6472      	cmpne      	r12, r1
 80133a0:	6c8d      	xor      	r2, r3
 80133a2:	c4620c40 	inct      	r3, r2, 0
    crc = crcu8((ee_u8)((newval) >> 8), crc);
 80133a6:	4828      	lsri      	r1, r0, 8
 80133a8:	74cd      	zexth      	r3, r3
 80133aa:	c423484c 	lsri      	r12, r3, 1
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80133ae:	6cc5      	xor      	r3, r1
 80133b0:	e4632001 	andi      	r3, r3, 1
            crc |= 0x8000;
 80133b4:	ea00a001 	movi      	r0, 40961
    crc = crcu8((ee_u8)((newval) >> 8), crc);
 80133b8:	7484      	zextb      	r2, r1
 80133ba:	3b40      	cmpnei      	r3, 0
            crc |= 0x8000;
 80133bc:	6c31      	xor      	r0, r12
 80133be:	c40c0c20 	incf      	r0, r12, 0
        data >>= 1;
 80133c2:	4a21      	lsri      	r1, r2, 1
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80133c4:	6c41      	xor      	r1, r0
 80133c6:	4861      	lsri      	r3, r0, 1
 80133c8:	e4212001 	andi      	r1, r1, 1
            crc |= 0x8000;
 80133cc:	ea00a001 	movi      	r0, 40961
 80133d0:	3940      	cmpnei      	r1, 0
 80133d2:	6c0d      	xor      	r0, r3
 80133d4:	c4030c20 	incf      	r0, r3, 0
        data >>= 1;
 80133d8:	4a62      	lsri      	r3, r2, 2
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80133da:	6cc1      	xor      	r3, r0
 80133dc:	e4632001 	andi      	r3, r3, 1
 80133e0:	4801      	lsri      	r0, r0, 1
            crc |= 0x8000;
 80133e2:	ea01a001 	movi      	r1, 40961
 80133e6:	3b40      	cmpnei      	r3, 0
 80133e8:	6c41      	xor      	r1, r0
 80133ea:	c4010c40 	inct      	r0, r1, 0
        data >>= 1;
 80133ee:	4a63      	lsri      	r3, r2, 3
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80133f0:	6cc1      	xor      	r3, r0
 80133f2:	e4632001 	andi      	r3, r3, 1
 80133f6:	4801      	lsri      	r0, r0, 1
            crc |= 0x8000;
 80133f8:	ea01a001 	movi      	r1, 40961
 80133fc:	3b40      	cmpnei      	r3, 0
 80133fe:	6c41      	xor      	r1, r0
 8013400:	c4010c40 	inct      	r0, r1, 0
        data >>= 1;
 8013404:	4a64      	lsri      	r3, r2, 4
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013406:	6cc1      	xor      	r3, r0
 8013408:	e4632001 	andi      	r3, r3, 1
 801340c:	4801      	lsri      	r0, r0, 1
            crc |= 0x8000;
 801340e:	ea01a001 	movi      	r1, 40961
 8013412:	3b40      	cmpnei      	r3, 0
 8013414:	6c41      	xor      	r1, r0
 8013416:	c4010c40 	inct      	r0, r1, 0
        data >>= 1;
 801341a:	4a65      	lsri      	r3, r2, 5
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 801341c:	6cc1      	xor      	r3, r0
 801341e:	e4632001 	andi      	r3, r3, 1
 8013422:	4801      	lsri      	r0, r0, 1
            crc |= 0x8000;
 8013424:	ea01a001 	movi      	r1, 40961
 8013428:	3b40      	cmpnei      	r3, 0
 801342a:	6c41      	xor      	r1, r0
 801342c:	c4010c40 	inct      	r0, r1, 0
        data >>= 1;
 8013430:	4a66      	lsri      	r3, r2, 6
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013432:	6cc1      	xor      	r3, r0
 8013434:	e4632001 	andi      	r3, r3, 1
 8013438:	4801      	lsri      	r0, r0, 1
            crc |= 0x8000;
 801343a:	ea01a001 	movi      	r1, 40961
 801343e:	3b40      	cmpnei      	r3, 0
 8013440:	6c41      	xor      	r1, r0
 8013442:	c4010c40 	inct      	r0, r1, 0
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013446:	e4202001 	andi      	r1, r0, 1
        data >>= 1;
 801344a:	4a47      	lsri      	r2, r2, 7
 801344c:	4801      	lsri      	r0, r0, 1
            crc |= 0x8000;
 801344e:	ea03a001 	movi      	r3, 40961
 8013452:	6cc1      	xor      	r3, r0
    return crc;
 8013454:	6486      	cmpne      	r1, r2
 8013456:	c4030c40 	inct      	r0, r3, 0
}
 801345a:	7401      	zexth      	r0, r0
 801345c:	783c      	jmp      	r15
	...

08013460 <crcu32>:
ee_u16
crcu32(ee_u32 newval, ee_u16 crc)
{
 8013460:	4961      	lsri      	r3, r1, 1
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013462:	6c41      	xor      	r1, r0
 8013464:	e4212001 	andi      	r1, r1, 1
            crc |= 0x8000;
 8013468:	ea0ca001 	movi      	r12, 40961
    crc = crcu8((ee_u8)(newval), crc);
 801346c:	7480      	zextb      	r2, r0
 801346e:	3940      	cmpnei      	r1, 0
            crc |= 0x8000;
 8013470:	6f0d      	xor      	r12, r3
 8013472:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 8013476:	4a21      	lsri      	r1, r2, 1
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013478:	6c4d      	xor      	r1, r3
 801347a:	e4212001 	andi      	r1, r1, 1
 801347e:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 8013480:	ea0ca001 	movi      	r12, 40961
 8013484:	3940      	cmpnei      	r1, 0
 8013486:	6f0d      	xor      	r12, r3
 8013488:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 801348c:	4a22      	lsri      	r1, r2, 2
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 801348e:	6c4d      	xor      	r1, r3
 8013490:	e4212001 	andi      	r1, r1, 1
 8013494:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 8013496:	ea0ca001 	movi      	r12, 40961
 801349a:	3940      	cmpnei      	r1, 0
 801349c:	6f0d      	xor      	r12, r3
 801349e:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 80134a2:	4a23      	lsri      	r1, r2, 3
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80134a4:	6c4d      	xor      	r1, r3
 80134a6:	e4212001 	andi      	r1, r1, 1
 80134aa:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 80134ac:	ea0ca001 	movi      	r12, 40961
 80134b0:	3940      	cmpnei      	r1, 0
 80134b2:	6f0d      	xor      	r12, r3
 80134b4:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 80134b8:	4a24      	lsri      	r1, r2, 4
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80134ba:	6c4d      	xor      	r1, r3
 80134bc:	e4212001 	andi      	r1, r1, 1
 80134c0:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 80134c2:	ea0ca001 	movi      	r12, 40961
 80134c6:	3940      	cmpnei      	r1, 0
 80134c8:	6f0d      	xor      	r12, r3
 80134ca:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 80134ce:	4a25      	lsri      	r1, r2, 5
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80134d0:	6c4d      	xor      	r1, r3
 80134d2:	e4212001 	andi      	r1, r1, 1
 80134d6:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 80134d8:	ea0ca001 	movi      	r12, 40961
 80134dc:	3940      	cmpnei      	r1, 0
 80134de:	6f0d      	xor      	r12, r3
 80134e0:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 80134e4:	4a26      	lsri      	r1, r2, 6
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80134e6:	6c4d      	xor      	r1, r3
 80134e8:	e4212001 	andi      	r1, r1, 1
 80134ec:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 80134ee:	ea0ca001 	movi      	r12, 40961
 80134f2:	3940      	cmpnei      	r1, 0
 80134f4:	6f0d      	xor      	r12, r3
 80134f6:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 80134fa:	4a27      	lsri      	r1, r2, 7
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80134fc:	e5832001 	andi      	r12, r3, 1
            crc |= 0x8000;
 8013500:	ea02a001 	movi      	r2, 40961
 8013504:	4b61      	lsri      	r3, r3, 1
 8013506:	6472      	cmpne      	r12, r1
 8013508:	6c8d      	xor      	r2, r3
 801350a:	c4620c40 	inct      	r3, r2, 0
    crc = crcu8((ee_u8)((newval) >> 8), crc);
 801350e:	c50055ec 	zext      	r12, r0, 15, 8
 8013512:	748d      	zexth      	r2, r3
 8013514:	4a61      	lsri      	r3, r2, 1
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013516:	6cb1      	xor      	r2, r12
 8013518:	e4422001 	andi      	r2, r2, 1
            crc |= 0x8000;
 801351c:	ea0da001 	movi      	r13, 40961
    crc = crcu8((ee_u8)((newval) >> 8), crc);
 8013520:	7470      	zextb      	r1, r12
 8013522:	3a40      	cmpnei      	r2, 0
            crc |= 0x8000;
 8013524:	6f4d      	xor      	r13, r3
 8013526:	c46d0c40 	inct      	r3, r13, 0
        data >>= 1;
 801352a:	4941      	lsri      	r2, r1, 1
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 801352c:	6c8d      	xor      	r2, r3
 801352e:	e4422001 	andi      	r2, r2, 1
 8013532:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 8013534:	ea0ca001 	movi      	r12, 40961
 8013538:	3a40      	cmpnei      	r2, 0
 801353a:	6f0d      	xor      	r12, r3
 801353c:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 8013540:	4942      	lsri      	r2, r1, 2
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013542:	6c8d      	xor      	r2, r3
 8013544:	e4422001 	andi      	r2, r2, 1
 8013548:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 801354a:	ea0ca001 	movi      	r12, 40961
 801354e:	3a40      	cmpnei      	r2, 0
 8013550:	6f0d      	xor      	r12, r3
 8013552:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 8013556:	4943      	lsri      	r2, r1, 3
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013558:	6c8d      	xor      	r2, r3
 801355a:	e4422001 	andi      	r2, r2, 1
 801355e:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 8013560:	ea0ca001 	movi      	r12, 40961
 8013564:	3a40      	cmpnei      	r2, 0
 8013566:	6f0d      	xor      	r12, r3
 8013568:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 801356c:	4944      	lsri      	r2, r1, 4
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 801356e:	6c8d      	xor      	r2, r3
 8013570:	e4422001 	andi      	r2, r2, 1
 8013574:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 8013576:	ea0ca001 	movi      	r12, 40961
 801357a:	3a40      	cmpnei      	r2, 0
 801357c:	6f0d      	xor      	r12, r3
 801357e:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 8013582:	4945      	lsri      	r2, r1, 5
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013584:	6c8d      	xor      	r2, r3
 8013586:	e4422001 	andi      	r2, r2, 1
 801358a:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 801358c:	ea0ca001 	movi      	r12, 40961
 8013590:	3a40      	cmpnei      	r2, 0
 8013592:	6f0d      	xor      	r12, r3
 8013594:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 8013598:	4946      	lsri      	r2, r1, 6
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 801359a:	6c8d      	xor      	r2, r3
 801359c:	e4422001 	andi      	r2, r2, 1
 80135a0:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 80135a2:	ea0ca001 	movi      	r12, 40961
 80135a6:	3a40      	cmpnei      	r2, 0
 80135a8:	6f0d      	xor      	r12, r3
 80135aa:	c46c0c40 	inct      	r3, r12, 0
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80135ae:	e5832001 	andi      	r12, r3, 1
        data >>= 1;
 80135b2:	4927      	lsri      	r1, r1, 7
 80135b4:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 80135b6:	ea02a001 	movi      	r2, 40961
 80135ba:	6472      	cmpne      	r12, r1
 80135bc:	6c8d      	xor      	r2, r3
 80135be:	c4620c40 	inct      	r3, r2, 0
    crc = crc16((ee_s16)newval, crc);
    crc = crc16((ee_s16)(newval >> 16), crc);
 80135c2:	4810      	lsri      	r0, r0, 16
 80135c4:	748d      	zexth      	r2, r3
 80135c6:	4a61      	lsri      	r3, r2, 1
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80135c8:	6c81      	xor      	r2, r0
 80135ca:	e4422001 	andi      	r2, r2, 1
            crc |= 0x8000;
 80135ce:	ea0ca001 	movi      	r12, 40961
    crc = crcu8((ee_u8)(newval), crc);
 80135d2:	7440      	zextb      	r1, r0
 80135d4:	3a40      	cmpnei      	r2, 0
            crc |= 0x8000;
 80135d6:	6f0d      	xor      	r12, r3
 80135d8:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 80135dc:	4941      	lsri      	r2, r1, 1
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80135de:	6c8d      	xor      	r2, r3
 80135e0:	e4422001 	andi      	r2, r2, 1
 80135e4:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 80135e6:	ea0ca001 	movi      	r12, 40961
 80135ea:	3a40      	cmpnei      	r2, 0
 80135ec:	6f0d      	xor      	r12, r3
 80135ee:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 80135f2:	4942      	lsri      	r2, r1, 2
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80135f4:	6c8d      	xor      	r2, r3
 80135f6:	e4422001 	andi      	r2, r2, 1
 80135fa:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 80135fc:	ea0ca001 	movi      	r12, 40961
 8013600:	3a40      	cmpnei      	r2, 0
 8013602:	6f0d      	xor      	r12, r3
 8013604:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 8013608:	4943      	lsri      	r2, r1, 3
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 801360a:	6c8d      	xor      	r2, r3
 801360c:	e4422001 	andi      	r2, r2, 1
 8013610:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 8013612:	ea0ca001 	movi      	r12, 40961
 8013616:	3a40      	cmpnei      	r2, 0
 8013618:	6f0d      	xor      	r12, r3
 801361a:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 801361e:	4944      	lsri      	r2, r1, 4
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013620:	6c8d      	xor      	r2, r3
 8013622:	e4422001 	andi      	r2, r2, 1
 8013626:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 8013628:	ea0ca001 	movi      	r12, 40961
 801362c:	3a40      	cmpnei      	r2, 0
 801362e:	6f0d      	xor      	r12, r3
 8013630:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 8013634:	4945      	lsri      	r2, r1, 5
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013636:	6c8d      	xor      	r2, r3
 8013638:	e4422001 	andi      	r2, r2, 1
 801363c:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 801363e:	ea0ca001 	movi      	r12, 40961
 8013642:	3a40      	cmpnei      	r2, 0
 8013644:	6f0d      	xor      	r12, r3
 8013646:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 801364a:	4946      	lsri      	r2, r1, 6
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 801364c:	6c8d      	xor      	r2, r3
 801364e:	e4422001 	andi      	r2, r2, 1
 8013652:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 8013654:	ea0ca001 	movi      	r12, 40961
 8013658:	3a40      	cmpnei      	r2, 0
 801365a:	6f0d      	xor      	r12, r3
 801365c:	c46c0c40 	inct      	r3, r12, 0
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013660:	e5832001 	andi      	r12, r3, 1
        data >>= 1;
 8013664:	4927      	lsri      	r1, r1, 7
 8013666:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 8013668:	ea02a001 	movi      	r2, 40961
 801366c:	6472      	cmpne      	r12, r1
 801366e:	6c8d      	xor      	r2, r3
 8013670:	c4620c40 	inct      	r3, r2, 0
 8013674:	744d      	zexth      	r1, r3
    crc = crcu8((ee_u8)((newval) >> 8), crc);
 8013676:	4808      	lsri      	r0, r0, 8
 8013678:	7480      	zextb      	r2, r0
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 801367a:	6c05      	xor      	r0, r1
 801367c:	4961      	lsri      	r3, r1, 1
 801367e:	e4002001 	andi      	r0, r0, 1
            crc |= 0x8000;
 8013682:	ea0ca001 	movi      	r12, 40961
 8013686:	3840      	cmpnei      	r0, 0
 8013688:	6f0d      	xor      	r12, r3
 801368a:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 801368e:	4a21      	lsri      	r1, r2, 1
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013690:	6c4d      	xor      	r1, r3
 8013692:	e4212001 	andi      	r1, r1, 1
 8013696:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 8013698:	ea00a001 	movi      	r0, 40961
 801369c:	3940      	cmpnei      	r1, 0
 801369e:	6c0d      	xor      	r0, r3
 80136a0:	c4600c40 	inct      	r3, r0, 0
        data >>= 1;
 80136a4:	4a22      	lsri      	r1, r2, 2
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80136a6:	6c4d      	xor      	r1, r3
 80136a8:	4b01      	lsri      	r0, r3, 1
 80136aa:	e4212001 	andi      	r1, r1, 1
            crc |= 0x8000;
 80136ae:	ea03a001 	movi      	r3, 40961
 80136b2:	3940      	cmpnei      	r1, 0
 80136b4:	6cc1      	xor      	r3, r0
 80136b6:	c4600c20 	incf      	r3, r0, 0
        data >>= 1;
 80136ba:	4a23      	lsri      	r1, r2, 3
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80136bc:	6c4d      	xor      	r1, r3
 80136be:	4b01      	lsri      	r0, r3, 1
 80136c0:	e4212001 	andi      	r1, r1, 1
            crc |= 0x8000;
 80136c4:	ea03a001 	movi      	r3, 40961
 80136c8:	3940      	cmpnei      	r1, 0
 80136ca:	6cc1      	xor      	r3, r0
 80136cc:	c4600c20 	incf      	r3, r0, 0
        data >>= 1;
 80136d0:	4a24      	lsri      	r1, r2, 4
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80136d2:	6c4d      	xor      	r1, r3
 80136d4:	e4212001 	andi      	r1, r1, 1
 80136d8:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 80136da:	ea00a001 	movi      	r0, 40961
 80136de:	3940      	cmpnei      	r1, 0
 80136e0:	6c0d      	xor      	r0, r3
 80136e2:	c4030c20 	incf      	r0, r3, 0
        data >>= 1;
 80136e6:	4a25      	lsri      	r1, r2, 5
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80136e8:	6c41      	xor      	r1, r0
 80136ea:	4861      	lsri      	r3, r0, 1
 80136ec:	e4212001 	andi      	r1, r1, 1
            crc |= 0x8000;
 80136f0:	ea00a001 	movi      	r0, 40961
 80136f4:	3940      	cmpnei      	r1, 0
 80136f6:	6c0d      	xor      	r0, r3
 80136f8:	c4030c20 	incf      	r0, r3, 0
        data >>= 1;
 80136fc:	4a66      	lsri      	r3, r2, 6
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80136fe:	6cc1      	xor      	r3, r0
 8013700:	e4632001 	andi      	r3, r3, 1
 8013704:	4801      	lsri      	r0, r0, 1
            crc |= 0x8000;
 8013706:	ea01a001 	movi      	r1, 40961
 801370a:	3b40      	cmpnei      	r3, 0
 801370c:	6c41      	xor      	r1, r0
 801370e:	c4010c40 	inct      	r0, r1, 0
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013712:	e4202001 	andi      	r1, r0, 1
        data >>= 1;
 8013716:	4a47      	lsri      	r2, r2, 7
 8013718:	4801      	lsri      	r0, r0, 1
            crc |= 0x8000;
 801371a:	ea03a001 	movi      	r3, 40961
 801371e:	6cc1      	xor      	r3, r0
    return crc;
 8013720:	6486      	cmpne      	r1, r2
 8013722:	c4030c40 	inct      	r0, r3, 0
}
 8013726:	7401      	zexth      	r0, r0
 8013728:	783c      	jmp      	r15
	...

0801372c <crc16>:
ee_u16
crc16(ee_s16 newval, ee_u16 crc)
{
 801372c:	4961      	lsri      	r3, r1, 1
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 801372e:	6c41      	xor      	r1, r0
 8013730:	e4212001 	andi      	r1, r1, 1
            crc |= 0x8000;
 8013734:	ea0ca001 	movi      	r12, 40961
    crc = crcu8((ee_u8)(newval), crc);
 8013738:	7480      	zextb      	r2, r0
 801373a:	3940      	cmpnei      	r1, 0
            crc |= 0x8000;
 801373c:	6f0d      	xor      	r12, r3
 801373e:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 8013742:	4a21      	lsri      	r1, r2, 1
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013744:	6c4d      	xor      	r1, r3
 8013746:	e4212001 	andi      	r1, r1, 1
 801374a:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 801374c:	ea0ca001 	movi      	r12, 40961
 8013750:	3940      	cmpnei      	r1, 0
 8013752:	6f0d      	xor      	r12, r3
 8013754:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 8013758:	4a22      	lsri      	r1, r2, 2
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 801375a:	6c4d      	xor      	r1, r3
 801375c:	e4212001 	andi      	r1, r1, 1
 8013760:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 8013762:	ea0ca001 	movi      	r12, 40961
 8013766:	3940      	cmpnei      	r1, 0
 8013768:	6f0d      	xor      	r12, r3
 801376a:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 801376e:	4a23      	lsri      	r1, r2, 3
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013770:	6c4d      	xor      	r1, r3
 8013772:	e4212001 	andi      	r1, r1, 1
 8013776:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 8013778:	ea0ca001 	movi      	r12, 40961
 801377c:	3940      	cmpnei      	r1, 0
 801377e:	6f0d      	xor      	r12, r3
 8013780:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 8013784:	4a24      	lsri      	r1, r2, 4
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013786:	6c4d      	xor      	r1, r3
 8013788:	e4212001 	andi      	r1, r1, 1
 801378c:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 801378e:	ea0ca001 	movi      	r12, 40961
 8013792:	3940      	cmpnei      	r1, 0
 8013794:	6f0d      	xor      	r12, r3
 8013796:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 801379a:	4a25      	lsri      	r1, r2, 5
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 801379c:	6c4d      	xor      	r1, r3
 801379e:	e4212001 	andi      	r1, r1, 1
 80137a2:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 80137a4:	ea0ca001 	movi      	r12, 40961
 80137a8:	3940      	cmpnei      	r1, 0
 80137aa:	6f0d      	xor      	r12, r3
 80137ac:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 80137b0:	4a26      	lsri      	r1, r2, 6
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80137b2:	6c4d      	xor      	r1, r3
 80137b4:	e4212001 	andi      	r1, r1, 1
 80137b8:	4b61      	lsri      	r3, r3, 1
            crc |= 0x8000;
 80137ba:	ea0ca001 	movi      	r12, 40961
 80137be:	3940      	cmpnei      	r1, 0
 80137c0:	6f0d      	xor      	r12, r3
 80137c2:	c46c0c40 	inct      	r3, r12, 0
        data >>= 1;
 80137c6:	4a27      	lsri      	r1, r2, 7
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80137c8:	e5832001 	andi      	r12, r3, 1
            crc |= 0x8000;
 80137cc:	ea02a001 	movi      	r2, 40961
 80137d0:	4b61      	lsri      	r3, r3, 1
 80137d2:	6472      	cmpne      	r12, r1
 80137d4:	6c8d      	xor      	r2, r3
 80137d6:	c4620c40 	inct      	r3, r2, 0
    crc = crcu8((ee_u8)((newval) >> 8), crc);
 80137da:	c50055e1 	zext      	r1, r0, 15, 8
 80137de:	74cd      	zexth      	r3, r3
 80137e0:	c423484c 	lsri      	r12, r3, 1
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80137e4:	6cc5      	xor      	r3, r1
 80137e6:	e4632001 	andi      	r3, r3, 1
            crc |= 0x8000;
 80137ea:	ea00a001 	movi      	r0, 40961
    crc = crcu8((ee_u8)((newval) >> 8), crc);
 80137ee:	7484      	zextb      	r2, r1
 80137f0:	3b40      	cmpnei      	r3, 0
            crc |= 0x8000;
 80137f2:	6c31      	xor      	r0, r12
 80137f4:	c40c0c20 	incf      	r0, r12, 0
        data >>= 1;
 80137f8:	4a21      	lsri      	r1, r2, 1
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 80137fa:	6c41      	xor      	r1, r0
 80137fc:	4861      	lsri      	r3, r0, 1
 80137fe:	e4212001 	andi      	r1, r1, 1
            crc |= 0x8000;
 8013802:	ea00a001 	movi      	r0, 40961
 8013806:	3940      	cmpnei      	r1, 0
 8013808:	6c0d      	xor      	r0, r3
 801380a:	c4030c20 	incf      	r0, r3, 0
        data >>= 1;
 801380e:	4a62      	lsri      	r3, r2, 2
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013810:	6cc1      	xor      	r3, r0
 8013812:	e4632001 	andi      	r3, r3, 1
 8013816:	4801      	lsri      	r0, r0, 1
            crc |= 0x8000;
 8013818:	ea01a001 	movi      	r1, 40961
 801381c:	3b40      	cmpnei      	r3, 0
 801381e:	6c41      	xor      	r1, r0
 8013820:	c4010c40 	inct      	r0, r1, 0
        data >>= 1;
 8013824:	4a63      	lsri      	r3, r2, 3
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013826:	6cc1      	xor      	r3, r0
 8013828:	e4632001 	andi      	r3, r3, 1
 801382c:	4801      	lsri      	r0, r0, 1
            crc |= 0x8000;
 801382e:	ea01a001 	movi      	r1, 40961
 8013832:	3b40      	cmpnei      	r3, 0
 8013834:	6c41      	xor      	r1, r0
 8013836:	c4010c40 	inct      	r0, r1, 0
        data >>= 1;
 801383a:	4a64      	lsri      	r3, r2, 4
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 801383c:	6cc1      	xor      	r3, r0
 801383e:	e4632001 	andi      	r3, r3, 1
 8013842:	4801      	lsri      	r0, r0, 1
            crc |= 0x8000;
 8013844:	ea01a001 	movi      	r1, 40961
 8013848:	3b40      	cmpnei      	r3, 0
 801384a:	6c41      	xor      	r1, r0
 801384c:	c4010c40 	inct      	r0, r1, 0
        data >>= 1;
 8013850:	4a65      	lsri      	r3, r2, 5
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013852:	6cc1      	xor      	r3, r0
 8013854:	e4632001 	andi      	r3, r3, 1
 8013858:	4801      	lsri      	r0, r0, 1
            crc |= 0x8000;
 801385a:	ea01a001 	movi      	r1, 40961
 801385e:	3b40      	cmpnei      	r3, 0
 8013860:	6c41      	xor      	r1, r0
 8013862:	c4010c40 	inct      	r0, r1, 0
        data >>= 1;
 8013866:	4a66      	lsri      	r3, r2, 6
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 8013868:	6cc1      	xor      	r3, r0
 801386a:	e4632001 	andi      	r3, r3, 1
 801386e:	4801      	lsri      	r0, r0, 1
            crc |= 0x8000;
 8013870:	ea01a001 	movi      	r1, 40961
 8013874:	3b40      	cmpnei      	r3, 0
 8013876:	6c41      	xor      	r1, r0
 8013878:	c4010c40 	inct      	r0, r1, 0
        x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
 801387c:	e4202001 	andi      	r1, r0, 1
        data >>= 1;
 8013880:	4a47      	lsri      	r2, r2, 7
 8013882:	4801      	lsri      	r0, r0, 1
            crc |= 0x8000;
 8013884:	ea03a001 	movi      	r3, 40961
 8013888:	6cc1      	xor      	r3, r0
    return crcu16((ee_u16)newval, crc);
 801388a:	6486      	cmpne      	r1, r2
 801388c:	c4030c40 	inct      	r0, r3, 0
}
 8013890:	7401      	zexth      	r0, r0
 8013892:	783c      	jmp      	r15

08013894 <check_data_types>:
    if (retval > 0)
    {
        ee_printf("ERROR: Please modify the datatypes in core_portme.h!\n");
    }
    return retval;
}
 8013894:	3000      	movi      	r0, 0
 8013896:	783c      	jmp      	r15

08013898 <SystemInit>:
  \details Writes the given value to the VBR Register.
  \param [in]    vbr  VBR Register value to set
 */
__ALWAYS_STATIC_INLINE void __set_VBR(uint32_t vbr)
{
    __ASM volatile("mtcr %0, vbr" : : "r"(vbr));
 8013898:	106a      	lrw      	r3, 0x20000000	// 80138c0 <SystemInit+0x28>
 801389a:	c0036421 	mtcr      	r3, cr<1, 0>
 */
__ALWAYS_STATIC_INLINE uint32_t __get_CHR(void)
{
    uint32_t result;

    __ASM volatile("mfcr %0, cr<31, 0>\n" :"=r"(result));
 801389e:	c01f6023 	mfcr      	r3, cr<31, 0>
    __set_Int_SP((uint32_t)&g_top_irqstack);
    __set_CHR(__get_CHR() | CHR_ISE_Msk);
    VIC->TSPR = 0xFF;
#endif

    __set_CHR(__get_CHR() | CHR_IAE_Msk);
 80138a2:	ec630010 	ori      	r3, r3, 16
  \details Assigns the given value to the CHR.
  \param [in]    chr  CHR value to set
 */
__ALWAYS_STATIC_INLINE void __set_CHR(uint32_t chr)
{
    __ASM volatile("mtcr %0, cr<31, 0>\n" : : "r"(chr));
 80138a6:	c003643f 	mtcr      	r3, cr<31, 0>

    /* Clear active and pending IRQ */
    VIC->IABR[0] = 0x0;
 80138aa:	1047      	lrw      	r2, 0xe000e100	// 80138c4 <SystemInit+0x2c>
 80138ac:	3300      	movi      	r3, 0
 80138ae:	dc622080 	st.w      	r3, (r2, 0x200)
    VIC->ICPR[0] = 0xFFFFFFFF;
 80138b2:	2b00      	subi      	r3, 1
 80138b4:	dc622060 	st.w      	r3, (r2, 0x180)
  \details Enables interrupts and exceptions by setting the IE-bit and EE-bit in the PSR.
           Can only be executed in Privileged modes.
 */
__ALWAYS_STATIC_INLINE void __enable_excp_irq(void)
{
    __ASM volatile("psrset ee, ie");
 80138b8:	c1807420 	psrset      	ee, ie

#ifdef CONFIG_KERNEL_NONE
    __enable_excp_irq();
#endif
}
 80138bc:	783c      	jmp      	r15
 80138be:	0000      	.short	0x0000
 80138c0:	20000000 	.long	0x20000000
 80138c4:	e000e100 	.long	0xe000e100

080138c8 <trap_c>:
#include <stdio.h>
#include <stdlib.h>
#include <csi_config.h>

void trap_c(uint32_t *regs)
{
 80138c8:	14d4      	push      	r4-r7, r15
 80138ca:	6d43      	mov      	r5, r0
    int i;
    uint32_t vec = 0;
    asm volatile(
 80138cc:	c0006021 	mfcr      	r1, cr<0, 0>
 80138d0:	4930      	lsri      	r1, r1, 16
 80138d2:	7446      	sextb      	r1, r1
        "mfcr    %0, psr \n"
        "lsri    %0, 16 \n"
        "sextb   %0 \n"
        :"=r"(vec):);
    //while (1);
    printf("CPU Exception : %u", vec);
 80138d4:	1018      	lrw      	r0, 0x80167cc	// 8013934 <trap_c+0x6c>
 80138d6:	e000144b 	bsr      	0x801616c	// 801616c <wm_printf>
    printf("\n");
 80138da:	300a      	movi      	r0, 10
 80138dc:	e3ffefbe 	bsr      	0x8011858	// 8011858 <__GI_putchar>

    for (i = 0; i < 16; i++) {
        printf("r%d: %08x\t", i, regs[i]);
 80138e0:	9540      	ld.w      	r2, (r5, 0x0)
 80138e2:	3100      	movi      	r1, 0
 80138e4:	1015      	lrw      	r0, 0x80167e0	// 8013938 <trap_c+0x70>
 80138e6:	e0001443 	bsr      	0x801616c	// 801616c <wm_printf>
    for (i = 0; i < 16; i++) {
 80138ea:	3400      	movi      	r4, 0
        printf("r%d: %08x\t", i, regs[i]);
 80138ec:	10f3      	lrw      	r7, 0x80167e0	// 8013938 <trap_c+0x70>

        if ((i % 5) == 4) {
 80138ee:	3605      	movi      	r6, 5
    for (i = 0; i < 16; i++) {
 80138f0:	2400      	addi      	r4, 1
 80138f2:	3c50      	cmpnei      	r4, 16
 80138f4:	0c13      	bf      	0x801391a	// 801391a <trap_c+0x52>
        printf("r%d: %08x\t", i, regs[i]);
 80138f6:	d0850882 	ldr.w      	r2, (r5, r4 << 2)
 80138fa:	6c53      	mov      	r1, r4
 80138fc:	6c1f      	mov      	r0, r7
 80138fe:	e0001437 	bsr      	0x801616c	// 801616c <wm_printf>
        if ((i % 5) == 4) {
 8013902:	c4c48043 	divs      	r3, r4, r6
 8013906:	7cd8      	mult      	r3, r6
 8013908:	5c6d      	subu      	r3, r4, r3
 801390a:	3b44      	cmpnei      	r3, 4
 801390c:	0bf2      	bt      	0x80138f0	// 80138f0 <trap_c+0x28>
            printf("\n");
 801390e:	300a      	movi      	r0, 10
    for (i = 0; i < 16; i++) {
 8013910:	2400      	addi      	r4, 1
            printf("\n");
 8013912:	e3ffefa3 	bsr      	0x8011858	// 8011858 <__GI_putchar>
    for (i = 0; i < 16; i++) {
 8013916:	3c50      	cmpnei      	r4, 16
 8013918:	0bef      	bt      	0x80138f6	// 80138f6 <trap_c+0x2e>
        }
    }

    printf("\n");
 801391a:	300a      	movi      	r0, 10
 801391c:	e3ffef9e 	bsr      	0x8011858	// 8011858 <__GI_putchar>
    printf("epsr: %8x\n", regs[16]);
 8013920:	9530      	ld.w      	r1, (r5, 0x40)
 8013922:	1007      	lrw      	r0, 0x80167ec	// 801393c <trap_c+0x74>
 8013924:	e0001424 	bsr      	0x801616c	// 801616c <wm_printf>
    printf("epc : %8x\n", regs[17]);
 8013928:	9531      	ld.w      	r1, (r5, 0x44)
 801392a:	1006      	lrw      	r0, 0x80167f8	// 8013940 <trap_c+0x78>
 801392c:	e0001420 	bsr      	0x801616c	// 801616c <wm_printf>
 8013930:	0400      	br      	0x8013930	// 8013930 <trap_c+0x68>
 8013932:	0000      	.short	0x0000
 8013934:	080167cc 	.long	0x080167cc
 8013938:	080167e0 	.long	0x080167e0
 801393c:	080167ec 	.long	0x080167ec
 8013940:	080167f8 	.long	0x080167f8

08013944 <board_init>:
    VIC->ICER[_IR_IDX(IRQn)] = (uint32_t)(1UL << ((uint32_t)(int32_t)IRQn % 32));
 8013944:	106a      	lrw      	r3, 0xe000e100	// 801396c <board_init+0x28>
 8013946:	ea210001 	movih      	r1, 1
 801394a:	dc232020 	st.w      	r1, (r3, 0x80)
    VIC->ICPR[_IR_IDX(IRQn)] = (uint32_t)(1UL << ((uint32_t)(int32_t)IRQn % 32));
 801394e:	dc232060 	st.w      	r1, (r3, 0x180)

	NVIC_DisableIRQ(UART0_IRQn);
	NVIC_ClearPendingIRQ(UART0_IRQn);

	bd = (APB_CLK/(16*bandrate) - 1)|(((APB_CLK%(bandrate*16))*16/(bandrate*16))<<16);
	WRITE_REG(UART0->BAUDR, bd);
 8013952:	1068      	lrw      	r3, 0x40010600	// 8013970 <board_init+0x2c>
 8013954:	ea21000b 	movih      	r1, 11
 8013958:	2113      	addi      	r1, 20
 801395a:	b324      	st.w      	r1, (r3, 0x10)
    VIC->ICER[_IR_IDX(IRQn)] = (uint32_t)(1UL << ((uint32_t)(int32_t)IRQn % 32));
 801395c:	3200      	movi      	r2, 0

	WRITE_REG(UART0->LC, UART_BITSTOP_VAL | UART_TXEN_BIT | UART_RXEN_BIT);
 801395e:	31c3      	movi      	r1, 195
 8013960:	b320      	st.w      	r1, (r3, 0x0)
	WRITE_REG(UART0->FC, 0x00);   			/* Disable afc */
 8013962:	b341      	st.w      	r2, (r3, 0x4)
	WRITE_REG(UART0->DMAC, 0x00);             		/* Disable DMA */
 8013964:	b342      	st.w      	r2, (r3, 0x8)
	WRITE_REG(UART0->FIFOC, 0x00);             		/* one byte TX/RX */
 8013966:	b343      	st.w      	r2, (r3, 0xc)
#else
    uart1_io_init();
    /* use uart1 as log output io */
	uart1Init(115200);
#endif
}
 8013968:	783c      	jmp      	r15
 801396a:	0000      	.short	0x0000
 801396c:	e000e100 	.long	0xe000e100
 8013970:	40010600 	.long	0x40010600

08013974 <_out_uart>:
#include "wm_regs.h"
#include "wm_hal.h"

int sendchar(int ch)
{
    while((READ_REG(UART0->FIFOS) & 0x3F) >= 32);
 8013974:	1044      	lrw      	r2, 0x40010600	// 8013984 <_out_uart+0x10>
 8013976:	9267      	ld.w      	r3, (r2, 0x1c)
 8013978:	e463203f 	andi      	r3, r3, 63
 801397c:	3b1f      	cmphsi      	r3, 32
 801397e:	0bfc      	bt      	0x8013976	// 8013976 <_out_uart+0x2>
    WRITE_REG(UART0->TDW, (char)ch);
 8013980:	b208      	st.w      	r0, (r2, 0x20)
}

static inline void _out_uart(char character, void* buffer, size_t idx, size_t maxlen)
{
  _write_r(NULL, 0, &character, 1);
}
 8013982:	783c      	jmp      	r15
 8013984:	40010600 	.long	0x40010600

08013988 <_out_null>:

// internal null output
static inline void _out_null(char character, void* buffer, size_t idx, size_t maxlen)
{
  (void)character; (void)buffer; (void)idx; (void)maxlen;
}
 8013988:	783c      	jmp      	r15
	...

0801398c <_ntoa_format>:
  return idx;
}

// internal itoa format
static size_t _ntoa_format(out_fct_type out, char* buffer, size_t idx, size_t maxlen, char* buf, size_t len, bool negative, unsigned int base, unsigned int prec, unsigned int width, unsigned int flags)
{
 801398c:	ebe00058 	push      	r4-r11, r15, r16-r17
 8013990:	6ecb      	mov      	r11, r2
 8013992:	9851      	ld.w      	r2, (r14, 0x44)
  // pad leading zeros
  if (!(flags & FLAGS_LEFT)) {
 8013994:	e6022002 	andi      	r16, r2, 2
{
 8013998:	6e4f      	mov      	r9, r3
 801399a:	986e      	ld.w      	r3, (r14, 0x38)
 801399c:	6e07      	mov      	r8, r1
 801399e:	6dc3      	mov      	r7, r0
 80139a0:	da2e200b 	ld.w      	r17, (r14, 0x2c)
 80139a4:	988c      	ld.w      	r4, (r14, 0x30)
 80139a6:	c4034832 	lsli      	r18, r3, 0
 80139aa:	982f      	ld.w      	r1, (r14, 0x3c)
 80139ac:	d94e2010 	ld.w      	r10, (r14, 0x40)
 80139b0:	d98e0034 	ld.b      	r12, (r14, 0x34)
  if (!(flags & FLAGS_LEFT)) {
 80139b4:	e930002a 	bnez      	r16, 0x8013a08	// 8013a08 <_ntoa_format+0x7c>
    if (width && (flags & FLAGS_ZEROPAD) && (negative || (flags & (FLAGS_PLUS | FLAGS_SPACE)))) {
 80139b8:	e92a008f 	bnez      	r10, 0x8013ad6	// 8013ad6 <_ntoa_format+0x14a>
      width--;
    }
    while ((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
 80139bc:	6450      	cmphs      	r4, r1
 80139be:	0825      	bt      	0x8013a08	// 8013a08 <_ntoa_format+0x7c>
 80139c0:	3c1f      	cmphsi      	r4, 32
 80139c2:	e5a22001 	andi      	r13, r2, 1
 80139c6:	0821      	bt      	0x8013a08	// 8013a08 <_ntoa_format+0x7c>
 80139c8:	c4910023 	addu      	r3, r17, r4
      buf[len++] = '0';
 80139cc:	3030      	movi      	r0, 48
 80139ce:	0405      	br      	0x80139d8	// 80139d8 <_ntoa_format+0x4c>
    while ((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
 80139d0:	eb440020 	cmpnei      	r4, 32
 80139d4:	2300      	addi      	r3, 1
 80139d6:	0c05      	bf      	0x80139e0	// 80139e0 <_ntoa_format+0x54>
      buf[len++] = '0';
 80139d8:	2400      	addi      	r4, 1
    while ((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
 80139da:	6450      	cmphs      	r4, r1
      buf[len++] = '0';
 80139dc:	a300      	st.b      	r0, (r3, 0x0)
    while ((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
 80139de:	0ff9      	bf      	0x80139d0	// 80139d0 <_ntoa_format+0x44>
    }
    while ((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
 80139e0:	e90d0014 	bez      	r13, 0x8013a08	// 8013a08 <_ntoa_format+0x7c>
 80139e4:	6690      	cmphs      	r4, r10
 80139e6:	0811      	bt      	0x8013a08	// 8013a08 <_ntoa_format+0x7c>
 80139e8:	331f      	movi      	r3, 31
 80139ea:	650c      	cmphs      	r3, r4
 80139ec:	0c86      	bf      	0x8013af8	// 8013af8 <_ntoa_format+0x16c>
 80139ee:	c4910023 	addu      	r3, r17, r4
      buf[len++] = '0';
 80139f2:	3030      	movi      	r0, 48
 80139f4:	0405      	br      	0x80139fe	// 80139fe <_ntoa_format+0x72>
    while ((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
 80139f6:	eb440020 	cmpnei      	r4, 32
 80139fa:	2300      	addi      	r3, 1
 80139fc:	0c7e      	bf      	0x8013af8	// 8013af8 <_ntoa_format+0x16c>
      buf[len++] = '0';
 80139fe:	2400      	addi      	r4, 1
    while ((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
 8013a00:	6692      	cmpne      	r4, r10
      buf[len++] = '0';
 8013a02:	a300      	st.b      	r0, (r3, 0x0)
    while ((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
 8013a04:	0bf9      	bt      	0x80139f6	// 80139f6 <_ntoa_format+0x6a>
      buf[len++] = '0';
 8013a06:	6e93      	mov      	r10, r4
    }
  }

  // handle hash
  if (flags & FLAGS_HASH) {
 8013a08:	e4622010 	andi      	r3, r2, 16
 8013a0c:	e9030016 	bez      	r3, 0x8013a38	// 8013a38 <_ntoa_format+0xac>
    if (!(flags & FLAGS_PRECISION) && len && ((len == prec) || (len == width))) {
 8013a10:	e4622400 	andi      	r3, r2, 1024
 8013a14:	e9230004 	bnez      	r3, 0x8013a1c	// 8013a1c <_ntoa_format+0x90>
 8013a18:	e9240078 	bnez      	r4, 0x8013b08	// 8013b08 <_ntoa_format+0x17c>
      len--;
      if (len && (base == 16U)) {
        len--;
      }
    }
    if ((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
 8013a1c:	c4124823 	lsli      	r3, r18, 0
 8013a20:	3b50      	cmpnei      	r3, 16
 8013a22:	0c9e      	bf      	0x8013b5e	// 8013b5e <_ntoa_format+0x1d2>
      buf[len++] = 'x';
    }
    else if ((base == 16U) && (flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
      buf[len++] = 'X';
    }
    else if ((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
 8013a24:	c4124823 	lsli      	r3, r18, 0
 8013a28:	3b42      	cmpnei      	r3, 2
 8013a2a:	0ca5      	bf      	0x8013b74	// 8013b74 <_ntoa_format+0x1e8>
      buf[len++] = 'b';
    }
    if (len < PRINTF_NTOA_BUFFER_SIZE) {
 8013a2c:	3c1f      	cmphsi      	r4, 32
 8013a2e:	0815      	bt      	0x8013a58	// 8013a58 <_ntoa_format+0xcc>
      buf[len++] = '0';
 8013a30:	3330      	movi      	r3, 48
 8013a32:	d4910023 	str.b      	r3, (r17, r4 << 0)
 8013a36:	2400      	addi      	r4, 1
    }
  }

  if (len < PRINTF_NTOA_BUFFER_SIZE) {
 8013a38:	3c1f      	cmphsi      	r4, 32
 8013a3a:	080f      	bt      	0x8013a58	// 8013a58 <_ntoa_format+0xcc>
    if (negative) {
 8013a3c:	e92c0073 	bnez      	r12, 0x8013b22	// 8013b22 <_ntoa_format+0x196>
      buf[len++] = '-';
    }
    else if (flags & FLAGS_PLUS) {
 8013a40:	e4622004 	andi      	r3, r2, 4
 8013a44:	e9230083 	bnez      	r3, 0x8013b4a	// 8013b4a <_ntoa_format+0x1be>
      buf[len++] = '+';  // ignore the space if the '+' exists
    }
    else if (flags & FLAGS_SPACE) {
 8013a48:	e4622008 	andi      	r3, r2, 8
 8013a4c:	e903002f 	bez      	r3, 0x8013aaa	// 8013aaa <_ntoa_format+0x11e>
      buf[len++] = ' ';
 8013a50:	3320      	movi      	r3, 32
 8013a52:	d4910023 	str.b      	r3, (r17, r4 << 0)
 8013a56:	2400      	addi      	r4, 1
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 8013a58:	e4422003 	andi      	r2, r2, 3
 8013a5c:	e902002b 	bez      	r2, 0x8013ab2	// 8013ab2 <_ntoa_format+0x126>
 8013a60:	6d6f      	mov      	r5, r11
 8013a62:	5cc3      	subi      	r6, r4, 1
 8013a64:	c4d10026 	addu      	r6, r17, r6
 8013a68:	6114      	addu      	r4, r5
    out(buf[--len], buffer, idx++, maxlen);
 8013a6a:	e6250000 	addi      	r17, r5, 1
 8013a6e:	6c97      	mov      	r2, r5
 8013a70:	8600      	ld.b      	r0, (r6, 0x0)
 8013a72:	6ce7      	mov      	r3, r9
 8013a74:	6c63      	mov      	r1, r8
 8013a76:	c4114825 	lsli      	r5, r17, 0
 8013a7a:	7bdd      	jsr      	r7
  while (len) {
 8013a7c:	6516      	cmpne      	r5, r4
 8013a7e:	2e00      	subi      	r6, 1
 8013a80:	0bf5      	bt      	0x8013a6a	// 8013a6a <_ntoa_format+0xde>
  if (flags & FLAGS_LEFT) {
 8013a82:	e9100011 	bez      	r16, 0x8013aa4	// 8013aa4 <_ntoa_format+0x118>
    while (idx - start_idx < width) {
 8013a86:	c5640083 	subu      	r3, r4, r11
 8013a8a:	668c      	cmphs      	r3, r10
 8013a8c:	080c      	bt      	0x8013aa4	// 8013aa4 <_ntoa_format+0x118>
 8013a8e:	6c93      	mov      	r2, r4
      out(' ', buffer, idx++, maxlen);
 8013a90:	2400      	addi      	r4, 1
 8013a92:	6ce7      	mov      	r3, r9
 8013a94:	6c63      	mov      	r1, r8
 8013a96:	3020      	movi      	r0, 32
 8013a98:	7bdd      	jsr      	r7
    while (idx - start_idx < width) {
 8013a9a:	c5640083 	subu      	r3, r4, r11
 8013a9e:	668c      	cmphs      	r3, r10
      out(' ', buffer, idx++, maxlen);
 8013aa0:	6c93      	mov      	r2, r4
    while (idx - start_idx < width) {
 8013aa2:	0ff7      	bf      	0x8013a90	// 8013a90 <_ntoa_format+0x104>
    }
  }

  return _out_rev(out, buffer, idx, maxlen, buf, len, width, flags);
}
 8013aa4:	6c13      	mov      	r0, r4
 8013aa6:	ebc00058 	pop      	r4-r11, r15, r16-r17
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 8013aaa:	e4422003 	andi      	r2, r2, 3
 8013aae:	e9220049 	bnez      	r2, 0x8013b40	// 8013b40 <_ntoa_format+0x1b4>
    for (size_t i = len; i < width; i++) {
 8013ab2:	6690      	cmphs      	r4, r10
 8013ab4:	0846      	bt      	0x8013b40	// 8013b40 <_ntoa_format+0x1b4>
 8013ab6:	c54b0026 	addu      	r6, r11, r10
 8013aba:	6192      	subu      	r6, r4
 8013abc:	6caf      	mov      	r2, r11
      out(' ', buffer, idx++, maxlen);
 8013abe:	5aa2      	addi      	r5, r2, 1
 8013ac0:	6ce7      	mov      	r3, r9
 8013ac2:	6c63      	mov      	r1, r8
 8013ac4:	3020      	movi      	r0, 32
 8013ac6:	7bdd      	jsr      	r7
    for (size_t i = len; i < width; i++) {
 8013ac8:	6596      	cmpne      	r5, r6
 8013aca:	6c97      	mov      	r2, r5
 8013acc:	0bf9      	bt      	0x8013abe	// 8013abe <_ntoa_format+0x132>
  while (len) {
 8013ace:	e924ffca 	bnez      	r4, 0x8013a62	// 8013a62 <_ntoa_format+0xd6>
 8013ad2:	6d17      	mov      	r4, r5
 8013ad4:	07d7      	br      	0x8013a82	// 8013a82 <_ntoa_format+0xf6>
    if (width && (flags & FLAGS_ZEROPAD) && (negative || (flags & (FLAGS_PLUS | FLAGS_SPACE)))) {
 8013ad6:	e5a22001 	andi      	r13, r2, 1
 8013ada:	e90d002d 	bez      	r13, 0x8013b34	// 8013b34 <_ntoa_format+0x1a8>
 8013ade:	e92c0033 	bnez      	r12, 0x8013b44	// 8013b44 <_ntoa_format+0x1b8>
 8013ae2:	e462200c 	andi      	r3, r2, 12
 8013ae6:	e923002f 	bnez      	r3, 0x8013b44	// 8013b44 <_ntoa_format+0x1b8>
    while ((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
 8013aea:	6450      	cmphs      	r4, r1
 8013aec:	0b7c      	bt      	0x80139e4	// 80139e4 <_ntoa_format+0x58>
 8013aee:	331f      	movi      	r3, 31
 8013af0:	650c      	cmphs      	r3, r4
 8013af2:	0b6b      	bt      	0x80139c8	// 80139c8 <_ntoa_format+0x3c>
    while ((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
 8013af4:	6690      	cmphs      	r4, r10
 8013af6:	0b89      	bt      	0x8013a08	// 8013a08 <_ntoa_format+0x7c>
  if (flags & FLAGS_HASH) {
 8013af8:	e4622010 	andi      	r3, r2, 16
 8013afc:	e903ffae 	bez      	r3, 0x8013a58	// 8013a58 <_ntoa_format+0xcc>
    if (!(flags & FLAGS_PRECISION) && len && ((len == prec) || (len == width))) {
 8013b00:	e4622400 	andi      	r3, r2, 1024
 8013b04:	e923ff8c 	bnez      	r3, 0x8013a1c	// 8013a1c <_ntoa_format+0x90>
 8013b08:	6506      	cmpne      	r1, r4
 8013b0a:	0c03      	bf      	0x8013b10	// 8013b10 <_ntoa_format+0x184>
 8013b0c:	6692      	cmpne      	r4, r10
 8013b0e:	0b87      	bt      	0x8013a1c	// 8013a1c <_ntoa_format+0x90>
      len--;
 8013b10:	5c63      	subi      	r3, r4, 1
      if (len && (base == 16U)) {
 8013b12:	e9030040 	bez      	r3, 0x8013b92	// 8013b92 <_ntoa_format+0x206>
 8013b16:	c4124821 	lsli      	r1, r18, 0
 8013b1a:	3950      	cmpnei      	r1, 16
 8013b1c:	0c20      	bf      	0x8013b5c	// 8013b5c <_ntoa_format+0x1d0>
 8013b1e:	6d0f      	mov      	r4, r3
 8013b20:	0782      	br      	0x8013a24	// 8013a24 <_ntoa_format+0x98>
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 8013b22:	e4422003 	andi      	r2, r2, 3
      buf[len++] = '-';
 8013b26:	332d      	movi      	r3, 45
 8013b28:	d4910023 	str.b      	r3, (r17, r4 << 0)
 8013b2c:	2400      	addi      	r4, 1
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 8013b2e:	e902ffc2 	bez      	r2, 0x8013ab2	// 8013ab2 <_ntoa_format+0x126>
 8013b32:	0797      	br      	0x8013a60	// 8013a60 <_ntoa_format+0xd4>
    while ((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
 8013b34:	6450      	cmphs      	r4, r1
 8013b36:	0b69      	bt      	0x8013a08	// 8013a08 <_ntoa_format+0x7c>
 8013b38:	331f      	movi      	r3, 31
 8013b3a:	650c      	cmphs      	r3, r4
 8013b3c:	0b46      	bt      	0x80139c8	// 80139c8 <_ntoa_format+0x3c>
 8013b3e:	0765      	br      	0x8013a08	// 8013a08 <_ntoa_format+0x7c>
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 8013b40:	6d6f      	mov      	r5, r11
 8013b42:	07c6      	br      	0x8013ace	// 8013ace <_ntoa_format+0x142>
      width--;
 8013b44:	e54a1000 	subi      	r10, r10, 1
 8013b48:	07d1      	br      	0x8013aea	// 8013aea <_ntoa_format+0x15e>
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 8013b4a:	e4422003 	andi      	r2, r2, 3
      buf[len++] = '+';  // ignore the space if the '+' exists
 8013b4e:	332b      	movi      	r3, 43
 8013b50:	d4910023 	str.b      	r3, (r17, r4 << 0)
 8013b54:	2400      	addi      	r4, 1
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 8013b56:	e902ffae 	bez      	r2, 0x8013ab2	// 8013ab2 <_ntoa_format+0x126>
 8013b5a:	0783      	br      	0x8013a60	// 8013a60 <_ntoa_format+0xd4>
        len--;
 8013b5c:	2c01      	subi      	r4, 2
    if ((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
 8013b5e:	e4622020 	andi      	r3, r2, 32
 8013b62:	e9230010 	bnez      	r3, 0x8013b82	// 8013b82 <_ntoa_format+0x1f6>
 8013b66:	3c1f      	cmphsi      	r4, 32
 8013b68:	0b78      	bt      	0x8013a58	// 8013a58 <_ntoa_format+0xcc>
      buf[len++] = 'x';
 8013b6a:	3378      	movi      	r3, 120
 8013b6c:	d4910023 	str.b      	r3, (r17, r4 << 0)
 8013b70:	2400      	addi      	r4, 1
 8013b72:	075d      	br      	0x8013a2c	// 8013a2c <_ntoa_format+0xa0>
    else if ((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
 8013b74:	3c1f      	cmphsi      	r4, 32
 8013b76:	0b71      	bt      	0x8013a58	// 8013a58 <_ntoa_format+0xcc>
      buf[len++] = 'b';
 8013b78:	3362      	movi      	r3, 98
 8013b7a:	d4910023 	str.b      	r3, (r17, r4 << 0)
 8013b7e:	2400      	addi      	r4, 1
 8013b80:	0756      	br      	0x8013a2c	// 8013a2c <_ntoa_format+0xa0>
    else if ((base == 16U) && (flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
 8013b82:	331f      	movi      	r3, 31
 8013b84:	650c      	cmphs      	r3, r4
 8013b86:	0f69      	bf      	0x8013a58	// 8013a58 <_ntoa_format+0xcc>
      buf[len++] = 'X';
 8013b88:	3358      	movi      	r3, 88
 8013b8a:	d4910023 	str.b      	r3, (r17, r4 << 0)
 8013b8e:	2400      	addi      	r4, 1
 8013b90:	074e      	br      	0x8013a2c	// 8013a2c <_ntoa_format+0xa0>
 8013b92:	6d0f      	mov      	r4, r3
 8013b94:	0744      	br      	0x8013a1c	// 8013a1c <_ntoa_format+0x90>
	...

08013b98 <_etoa.part.0>:
}


#if defined(PRINTF_SUPPORT_EXPONENTIAL)
// internal ftoa variant for exponential floating-point type, contributed by Martijn Jasperse <m.jasperse@gmail.com>
static size_t _etoa(out_fct_type out, char* buffer, size_t idx, size_t maxlen, double value, unsigned int prec, unsigned int width, unsigned int flags)
 8013b98:	ebe00058 	push      	r4-r11, r15, r16-r17
 8013b9c:	143d      	subi      	r14, r14, 116
 8013b9e:	6dcf      	mov      	r7, r3
 8013ba0:	9968      	ld.w      	r3, (r14, 0xa0)
 8013ba2:	b86a      	st.w      	r3, (r14, 0x28)
 8013ba4:	6d43      	mov      	r5, r0
 8013ba6:	6c0f      	mov      	r0, r3
 8013ba8:	9969      	ld.w      	r3, (r14, 0xa4)
 8013baa:	b86b      	st.w      	r3, (r14, 0x2c)
 8013bac:	6d87      	mov      	r6, r1
 8013bae:	6c4f      	mov      	r1, r3
 8013bb0:	996b      	ld.w      	r3, (r14, 0xac)
 8013bb2:	b86c      	st.w      	r3, (r14, 0x30)
 8013bb4:	6ecb      	mov      	r11, r2
 8013bb6:	996c      	ld.w      	r3, (r14, 0xb0)
    return _ftoa(out, buffer, idx, maxlen, value, prec, width, flags);
  }

  // determine the sign
  const bool negative = value < 0;
  if (negative) {
 8013bb8:	3200      	movi      	r2, 0
static size_t _etoa(out_fct_type out, char* buffer, size_t idx, size_t maxlen, double value, unsigned int prec, unsigned int width, unsigned int flags)
 8013bba:	b867      	st.w      	r3, (r14, 0x1c)
  if (negative) {
 8013bbc:	6ccb      	mov      	r3, r2
 8013bbe:	e3ffebd7 	bsr      	0x801136c	// 801136c <__ltdf2>
static size_t _etoa(out_fct_type out, char* buffer, size_t idx, size_t maxlen, double value, unsigned int prec, unsigned int width, unsigned int flags)
 8013bc2:	d90e202a 	ld.w      	r8, (r14, 0xa8)
    value = -value;
 8013bc6:	d94e200a 	ld.w      	r10, (r14, 0x28)
  if (negative) {
 8013bca:	e98002b1 	blz      	r0, 0x801412c	// 801412c <_etoa.part.0+0x594>
 8013bce:	988b      	ld.w      	r4, (r14, 0x2c)
  }

  // default precision
  if (!(flags & FLAGS_PRECISION)) {
 8013bd0:	9867      	ld.w      	r3, (r14, 0x1c)
 8013bd2:	e4632400 	andi      	r3, r3, 1024
    uint64_t U;
    double   F;
  } conv;

  conv.F = value;
  int exp2 = (int)((conv.U >> 52U) & 0x07FFU) - 1023;           // effectively log2
 8013bd6:	c68457c0 	zext      	r0, r4, 30, 20
    prec = PRINTF_DEFAULT_FLOAT_PRECISION;
 8013bda:	3b40      	cmpnei      	r3, 0
  if (!(flags & FLAGS_PRECISION)) {
 8013bdc:	b874      	st.w      	r3, (r14, 0x50)
  conv.U = (conv.U & ((1ULL << 52U) - 1U)) | (1023ULL << 52U);  // drop the exponent so conv.F is now in [1,2)
  // now approximate log10 from the log2 integer part and an expansion of ln around 1.5
  int expval = (int)(0.1760912590558 + exp2 * 0.301029995663981 + (conv.F - 1.5) * 0.289529654602168);
 8013bde:	e40013fe 	subi      	r0, r0, 1023
    prec = PRINTF_DEFAULT_FLOAT_PRECISION;
 8013be2:	3306      	movi      	r3, 6
 8013be4:	c5030c20 	incf      	r8, r3, 0
  int exp2 = (int)((conv.U >> 52U) & 0x07FFU) - 1023;           // effectively log2
 8013be8:	dd4e2008 	st.w      	r10, (r14, 0x20)
  int expval = (int)(0.1760912590558 + exp2 * 0.301029995663981 + (conv.F - 1.5) * 0.289529654602168);
 8013bec:	e3ffebdc 	bsr      	0x80113a4	// 80113a4 <__floatsidf>
 8013bf0:	ea820121 	lrw      	r2, 0x509f79fb	// 8014074 <_etoa.part.0+0x4dc>
 8013bf4:	ea830121 	lrw      	r3, 0x3fd34413	// 8014078 <_etoa.part.0+0x4e0>
 8013bf8:	e3ffe9d2 	bsr      	0x8010f9c	// 8010f9c <__muldf3>
 8013bfc:	ea820120 	lrw      	r2, 0x8b60c8b3	// 801407c <_etoa.part.0+0x4e4>
 8013c00:	ea830120 	lrw      	r3, 0x3fc68a28	// 8014080 <_etoa.part.0+0x4e8>
 8013c04:	e3ffe996 	bsr      	0x8010f30	// 8010f30 <__adddf3>
  conv.U = (conv.U & ((1ULL << 52U) - 1U)) | (1023ULL << 52U);  // drop the exponent so conv.F is now in [1,2)
 8013c08:	da4e2008 	ld.w      	r18, (r14, 0x20)
 8013c0c:	c412482c 	lsli      	r12, r18, 0
 8013c10:	ea140000 	movi      	r20, 0
 8013c14:	ea353ff0 	movih      	r21, 16368
 8013c18:	c404566d 	zext      	r13, r4, 19, 0
  int expval = (int)(0.1760912590558 + exp2 * 0.301029995663981 + (conv.F - 1.5) * 0.289529654602168);
 8013c1c:	c4004830 	lsli      	r16, r0, 0
 8013c20:	6e47      	mov      	r9, r1
 8013c22:	3200      	movi      	r2, 0
 8013c24:	c68c2420 	or      	r0, r12, r20
 8013c28:	c6ad2421 	or      	r1, r13, r21
 8013c2c:	ea233ff8 	movih      	r3, 16376
  conv.U = (conv.U & ((1ULL << 52U) - 1U)) | (1023ULL << 52U);  // drop the exponent so conv.F is now in [1,2)
 8013c30:	de4e2013 	st.w      	r18, (r14, 0x4c)
  int expval = (int)(0.1760912590558 + exp2 * 0.301029995663981 + (conv.F - 1.5) * 0.289529654602168);
 8013c34:	de8e2011 	st.w      	r20, (r14, 0x44)
 8013c38:	deae2012 	st.w      	r21, (r14, 0x48)
 8013c3c:	e3ffe992 	bsr      	0x8010f60	// 8010f60 <__subdf3>
 8013c40:	ea820111 	lrw      	r2, 0x636f4361	// 8014084 <_etoa.part.0+0x4ec>
 8013c44:	ea830111 	lrw      	r3, 0x3fd287a7	// 8014088 <_etoa.part.0+0x4f0>
 8013c48:	e3ffe9aa 	bsr      	0x8010f9c	// 8010f9c <__muldf3>
 8013c4c:	6c83      	mov      	r2, r0
 8013c4e:	6cc7      	mov      	r3, r1
 8013c50:	c4104820 	lsli      	r0, r16, 0
 8013c54:	6c67      	mov      	r1, r9
 8013c56:	e3ffe96d 	bsr      	0x8010f30	// 8010f30 <__adddf3>
 8013c5a:	e3ffebd9 	bsr      	0x801140c	// 801140c <__fixdfsi>
 8013c5e:	b808      	st.w      	r0, (r14, 0x20)
  // now we want to compute 10^expval but we want to be sure it won't overflow
  exp2 = (int)(expval * 3.321928094887362 + 0.5);
 8013c60:	e3ffeba2 	bsr      	0x80113a4	// 80113a4 <__floatsidf>
 8013c64:	ea82010a 	lrw      	r2, 0x979a371	// 801408c <_etoa.part.0+0x4f4>
 8013c68:	ea83010a 	lrw      	r3, 0x400a934f	// 8014090 <_etoa.part.0+0x4f8>
 8013c6c:	c4004830 	lsli      	r16, r0, 0
 8013c70:	6e47      	mov      	r9, r1
 8013c72:	e3ffe995 	bsr      	0x8010f9c	// 8010f9c <__muldf3>
 8013c76:	3200      	movi      	r2, 0
 8013c78:	ea233fe0 	movih      	r3, 16352
 8013c7c:	e3ffe95a 	bsr      	0x8010f30	// 8010f30 <__adddf3>
 8013c80:	e3ffebc6 	bsr      	0x801140c	// 801140c <__fixdfsi>
 8013c84:	b809      	st.w      	r0, (r14, 0x24)
  const double z  = expval * 2.302585092994046 - exp2 * 0.6931471805599453;
 8013c86:	ea820104 	lrw      	r2, 0xbbb55516	// 8014094 <_etoa.part.0+0x4fc>
 8013c8a:	ea830104 	lrw      	r3, 0x40026bb1	// 8014098 <_etoa.part.0+0x500>
 8013c8e:	c4104820 	lsli      	r0, r16, 0
 8013c92:	6c67      	mov      	r1, r9
 8013c94:	e3ffe984 	bsr      	0x8010f9c	// 8010f9c <__muldf3>
 8013c98:	c4004830 	lsli      	r16, r0, 0
 8013c9c:	9809      	ld.w      	r0, (r14, 0x24)
 8013c9e:	6e47      	mov      	r9, r1
 8013ca0:	e3ffeb82 	bsr      	0x80113a4	// 80113a4 <__floatsidf>
 8013ca4:	0041      	lrw      	r2, 0xfefa39ef	// 801409c <_etoa.part.0+0x504>
 8013ca6:	ea8300ff 	lrw      	r3, 0x3fe62e42	// 80140a0 <_etoa.part.0+0x508>
 8013caa:	e3ffe979 	bsr      	0x8010f9c	// 8010f9c <__muldf3>
 8013cae:	6c83      	mov      	r2, r0
 8013cb0:	6cc7      	mov      	r3, r1
 8013cb2:	c4104820 	lsli      	r0, r16, 0
 8013cb6:	6c67      	mov      	r1, r9
 8013cb8:	e3ffe954 	bsr      	0x8010f60	// 8010f60 <__subdf3>
  const double z2 = z * z;
 8013cbc:	6c83      	mov      	r2, r0
 8013cbe:	6cc7      	mov      	r3, r1
 8013cc0:	b80e      	st.w      	r0, (r14, 0x38)
 8013cc2:	b82d      	st.w      	r1, (r14, 0x34)
 8013cc4:	e3ffe96c 	bsr      	0x8010f9c	// 8010f9c <__muldf3>
  conv.U = (uint64_t)(exp2 + 1023) << 52U;
  // compute exp(z) using continued fractions, see https://en.wikipedia.org/wiki/Exponential_function#Continued_fractions_for_ex
  conv.F *= 1 + 2 * z / (2 - z + (z2 / (6 + (z2 / (10 + z2 / 14)))));
 8013cc8:	d9ae200e 	ld.w      	r13, (r14, 0x38)
 8013ccc:	d98e200d 	ld.w      	r12, (r14, 0x34)
 8013cd0:	6cb7      	mov      	r2, r13
 8013cd2:	6cf3      	mov      	r3, r12
  const double z2 = z * z;
 8013cd4:	c4004830 	lsli      	r16, r0, 0
 8013cd8:	6e47      	mov      	r9, r1
  conv.F *= 1 + 2 * z / (2 - z + (z2 / (6 + (z2 / (10 + z2 / 14)))));
 8013cda:	6c37      	mov      	r0, r13
 8013cdc:	6c73      	mov      	r1, r12
 8013cde:	ddae2010 	st.w      	r13, (r14, 0x40)
 8013ce2:	dd8e200f 	st.w      	r12, (r14, 0x3c)
 8013ce6:	e3ffe925 	bsr      	0x8010f30	// 8010f30 <__adddf3>
 8013cea:	b80e      	st.w      	r0, (r14, 0x38)
 8013cec:	b82d      	st.w      	r1, (r14, 0x34)
 8013cee:	3200      	movi      	r2, 0
 8013cf0:	ea23402c 	movih      	r3, 16428
 8013cf4:	c4104820 	lsli      	r0, r16, 0
 8013cf8:	6c67      	mov      	r1, r9
 8013cfa:	e3ffea51 	bsr      	0x801119c	// 801119c <__divdf3>
 8013cfe:	3200      	movi      	r2, 0
 8013d00:	ea234024 	movih      	r3, 16420
 8013d04:	e3ffe916 	bsr      	0x8010f30	// 8010f30 <__adddf3>
 8013d08:	6c83      	mov      	r2, r0
 8013d0a:	6cc7      	mov      	r3, r1
 8013d0c:	c4104820 	lsli      	r0, r16, 0
 8013d10:	6c67      	mov      	r1, r9
 8013d12:	e3ffea45 	bsr      	0x801119c	// 801119c <__divdf3>
 8013d16:	3200      	movi      	r2, 0
 8013d18:	ea234018 	movih      	r3, 16408
 8013d1c:	e3ffe90a 	bsr      	0x8010f30	// 8010f30 <__adddf3>
 8013d20:	6c83      	mov      	r2, r0
 8013d22:	6cc7      	mov      	r3, r1
 8013d24:	c4104820 	lsli      	r0, r16, 0
 8013d28:	6c67      	mov      	r1, r9
 8013d2a:	e3ffea39 	bsr      	0x801119c	// 801119c <__divdf3>
 8013d2e:	d9ae2010 	ld.w      	r13, (r14, 0x40)
 8013d32:	d98e200f 	ld.w      	r12, (r14, 0x3c)
 8013d36:	6cb7      	mov      	r2, r13
 8013d38:	6cf3      	mov      	r3, r12
 8013d3a:	c4004830 	lsli      	r16, r0, 0
 8013d3e:	6e47      	mov      	r9, r1
 8013d40:	3000      	movi      	r0, 0
 8013d42:	ea214000 	movih      	r1, 16384
 8013d46:	e3ffe90d 	bsr      	0x8010f60	// 8010f60 <__subdf3>
 8013d4a:	6c83      	mov      	r2, r0
 8013d4c:	6cc7      	mov      	r3, r1
 8013d4e:	c4104820 	lsli      	r0, r16, 0
 8013d52:	6c67      	mov      	r1, r9
 8013d54:	e3ffe8ee 	bsr      	0x8010f30	// 8010f30 <__adddf3>
 8013d58:	daee200e 	ld.w      	r23, (r14, 0x38)
 8013d5c:	dace200d 	ld.w      	r22, (r14, 0x34)
 8013d60:	6c83      	mov      	r2, r0
 8013d62:	6cc7      	mov      	r3, r1
 8013d64:	c4174820 	lsli      	r0, r23, 0
 8013d68:	c4164821 	lsli      	r1, r22, 0
 8013d6c:	e3ffea18 	bsr      	0x801119c	// 801119c <__divdf3>
 8013d70:	da8e2011 	ld.w      	r20, (r14, 0x44)
 8013d74:	daae2012 	ld.w      	r21, (r14, 0x48)
 8013d78:	c4144822 	lsli      	r2, r20, 0
 8013d7c:	c4154823 	lsli      	r3, r21, 0
 8013d80:	e3ffe8d8 	bsr      	0x8010f30	// 8010f30 <__adddf3>
  conv.U = (uint64_t)(exp2 + 1023) << 52U;
 8013d84:	9849      	ld.w      	r2, (r14, 0x24)
 8013d86:	e46203fe 	addi      	r3, r2, 1023
  conv.F *= 1 + 2 * z / (2 - z + (z2 / (6 + (z2 / (10 + z2 / 14)))));
 8013d8a:	4374      	lsli      	r3, r3, 20
 8013d8c:	3200      	movi      	r2, 0
 8013d8e:	e3ffe907 	bsr      	0x8010f9c	// 8010f9c <__muldf3>
  // correct for rounding errors
  if (value < conv.F) {
 8013d92:	da4e2013 	ld.w      	r18, (r14, 0x4c)
 8013d96:	6c83      	mov      	r2, r0
 8013d98:	c4004830 	lsli      	r16, r0, 0
 8013d9c:	6cc7      	mov      	r3, r1
 8013d9e:	6e47      	mov      	r9, r1
 8013da0:	c4124820 	lsli      	r0, r18, 0
 8013da4:	6c53      	mov      	r1, r4
 8013da6:	e3ffeae3 	bsr      	0x801136c	// 801136c <__ltdf2>
  int exp2 = (int)((conv.U >> 52U) & 0x07FFU) - 1023;           // effectively log2
 8013daa:	c4044831 	lsli      	r17, r4, 0
  if (value < conv.F) {
 8013dae:	6f27      	mov      	r12, r9
 8013db0:	c410482d 	lsli      	r13, r16, 0
 8013db4:	e9a0000f 	bhsz      	r0, 0x8013dd2	// 8013dd2 <_etoa.part.0+0x23a>
    expval--;
 8013db8:	9868      	ld.w      	r3, (r14, 0x20)
 8013dba:	2b00      	subi      	r3, 1
 8013dbc:	b868      	st.w      	r3, (r14, 0x20)
    conv.F /= 10;
 8013dbe:	3200      	movi      	r2, 0
 8013dc0:	ea234024 	movih      	r3, 16420
 8013dc4:	c4104820 	lsli      	r0, r16, 0
 8013dc8:	6c67      	mov      	r1, r9
 8013dca:	e3ffe9e9 	bsr      	0x801119c	// 801119c <__divdf3>
 8013dce:	6f43      	mov      	r13, r0
 8013dd0:	6f07      	mov      	r12, r1
  }

  // the exponent format is "%+03d" and largest value is "307", so set aside 4-5 characters
  unsigned int minwidth = ((expval < 100) && (expval > -100)) ? 4U : 5U;
 8013dd2:	d92e2008 	ld.w      	r9, (r14, 0x20)
 8013dd6:	6ce7      	mov      	r3, r9
 8013dd8:	2362      	addi      	r3, 99
 8013dda:	eb0300c6 	cmphsi      	r3, 199

  // in "%g" mode, "prec" is the number of *significant figures* not decimals
  if (flags & FLAGS_ADAPT_EXP) {
 8013dde:	9867      	ld.w      	r3, (r14, 0x1c)
 8013de0:	e4632800 	andi      	r3, r3, 2048
  unsigned int minwidth = ((expval < 100) && (expval > -100)) ? 4U : 5U;
 8013de4:	c4000510 	mvc      	r16
 8013de8:	e6100003 	addi      	r16, r16, 4
  if (flags & FLAGS_ADAPT_EXP) {
 8013dec:	e903002c 	bez      	r3, 0x8013e44	// 8013e44 <_etoa.part.0+0x2ac>
    // do we want to fall-back to "%f" mode?
    if ((value >= 1e-4) && (value < 1e6)) {
 8013df0:	0252      	lrw      	r2, 0xeb1c432d	// 80140a4 <_etoa.part.0+0x50c>
 8013df2:	0271      	lrw      	r3, 0x3f1a36e2	// 80140a8 <_etoa.part.0+0x510>
 8013df4:	6c2b      	mov      	r0, r10
 8013df6:	6c53      	mov      	r1, r4
 8013df8:	dd8e2009 	st.w      	r12, (r14, 0x24)
 8013dfc:	c40d4831 	lsli      	r17, r13, 0
 8013e00:	e3ffea96 	bsr      	0x801132c	// 801132c <__gedf2>
 8013e04:	c411482d 	lsli      	r13, r17, 0
 8013e08:	d98e2009 	ld.w      	r12, (r14, 0x24)
 8013e0c:	e9800184 	blz      	r0, 0x8014114	// 8014114 <_etoa.part.0+0x57c>
 8013e10:	3200      	movi      	r2, 0
 8013e12:	0278      	lrw      	r3, 0x412e8480	// 80140ac <_etoa.part.0+0x514>
 8013e14:	6c2b      	mov      	r0, r10
 8013e16:	6c53      	mov      	r1, r4
 8013e18:	e3ffeaaa 	bsr      	0x801136c	// 801136c <__ltdf2>
 8013e1c:	c411482d 	lsli      	r13, r17, 0
 8013e20:	d98e2009 	ld.w      	r12, (r14, 0x24)
 8013e24:	e9a00178 	bhsz      	r0, 0x8014114	// 8014114 <_etoa.part.0+0x57c>
      if ((int)prec > expval) {
 8013e28:	6625      	cmplt      	r9, r8
 8013e2a:	e8400355 	bf      	0x80144d4	// 80144d4 <_etoa.part.0+0x93c>
        prec = (unsigned)((int)prec - expval - 1);
 8013e2e:	6226      	subu      	r8, r9
 8013e30:	e5081000 	subi      	r8, r8, 1
      }
      else {
        prec = 0;
      }
      flags |= FLAGS_PRECISION;   // make sure _ftoa respects precision
 8013e34:	9867      	ld.w      	r3, (r14, 0x1c)
 8013e36:	ec630400 	ori      	r3, r3, 1024
      // no characters in exponent
      minwidth = 0U;
 8013e3a:	ea100000 	movi      	r16, 0
      flags |= FLAGS_PRECISION;   // make sure _ftoa respects precision
 8013e3e:	b867      	st.w      	r3, (r14, 0x1c)
      expval   = 0;
 8013e40:	de0e2008 	st.w      	r16, (r14, 0x20)

  // will everything fit?
  unsigned int fwidth = width;
  if (width > minwidth) {
    // we didn't fall-back so subtract the characters required for the exponent
    fwidth -= minwidth;
 8013e44:	984c      	ld.w      	r2, (r14, 0x30)
 8013e46:	c6020089 	subu      	r9, r2, r16
 8013e4a:	c4500420 	cmphs      	r16, r2
  } else {
    // not enough characters, so go back to default sizing
    fwidth = 0U;
  }
  if ((flags & FLAGS_LEFT) && minwidth) {
 8013e4e:	9847      	ld.w      	r2, (r14, 0x1c)
 8013e50:	e4422002 	andi      	r2, r2, 2
    fwidth -= minwidth;
 8013e54:	3300      	movi      	r3, 0
 8013e56:	c5230c40 	inct      	r9, r3, 0
  if ((flags & FLAGS_LEFT) && minwidth) {
 8013e5a:	b849      	st.w      	r2, (r14, 0x24)
 8013e5c:	e9020006 	bez      	r2, 0x8013e68	// 8013e68 <_etoa.part.0+0x2d0>
    // if we're padding on the right, DON'T pad the floating part
    fwidth = 0U;
 8013e60:	eb500000 	cmpnei      	r16, 0
 8013e64:	c5230c40 	inct      	r9, r3, 0
  }

  // rescale the float value
  if (expval) {
 8013e68:	9868      	ld.w      	r3, (r14, 0x20)
 8013e6a:	e903000a 	bez      	r3, 0x8013e7e	// 8013e7e <_etoa.part.0+0x2e6>
    value /= conv.F;
 8013e6e:	6c2b      	mov      	r0, r10
 8013e70:	6c53      	mov      	r1, r4
 8013e72:	6cb7      	mov      	r2, r13
 8013e74:	6cf3      	mov      	r3, r12
 8013e76:	e3ffe993 	bsr      	0x801119c	// 801119c <__divdf3>
 8013e7a:	6e83      	mov      	r10, r0
 8013e7c:	6d07      	mov      	r4, r1
  }

  // output the floating part
  const size_t start_idx = idx;
  idx = _ftoa(out, buffer, idx, maxlen, negative ? -value : value, prec, fwidth, flags & ~FLAGS_ADAPT_EXP);
 8013e7e:	3200      	movi      	r2, 0
 8013e80:	6ccb      	mov      	r3, r2
 8013e82:	980a      	ld.w      	r0, (r14, 0x28)
 8013e84:	982b      	ld.w      	r1, (r14, 0x2c)
 8013e86:	e3ffea73 	bsr      	0x801136c	// 801136c <__ltdf2>
 8013e8a:	e980014c 	blz      	r0, 0x8014122	// 8014122 <_etoa.part.0+0x58a>
  if (value != value)
 8013e8e:	6cab      	mov      	r2, r10
 8013e90:	6cd3      	mov      	r3, r4
 8013e92:	6c2b      	mov      	r0, r10
 8013e94:	6c53      	mov      	r1, r4
 8013e96:	e3ffea0f 	bsr      	0x80112b4	// 80112b4 <__nedf2>
 8013e9a:	e920014f 	bnez      	r0, 0x8014138	// 8014138 <_etoa.part.0+0x5a0>
  if (value < -DBL_MAX)
 8013e9e:	3200      	movi      	r2, 0
 8013ea0:	ea23fff0 	movih      	r3, 65520
 8013ea4:	2a00      	subi      	r2, 1
 8013ea6:	2b00      	subi      	r3, 1
 8013ea8:	6c2b      	mov      	r0, r10
 8013eaa:	6c53      	mov      	r1, r4
 8013eac:	e3ffea60 	bsr      	0x801136c	// 801136c <__ltdf2>
 8013eb0:	e980021f 	blz      	r0, 0x80142ee	// 80142ee <_etoa.part.0+0x756>
  if (value > DBL_MAX)
 8013eb4:	3200      	movi      	r2, 0
 8013eb6:	ea237ff0 	movih      	r3, 32752
 8013eba:	2a00      	subi      	r2, 1
 8013ebc:	2b00      	subi      	r3, 1
 8013ebe:	6c2b      	mov      	r0, r10
 8013ec0:	6c53      	mov      	r1, r4
 8013ec2:	e3ffea15 	bsr      	0x80112ec	// 80112ec <__gtdf2>
 8013ec6:	e94000f9 	bhz      	r0, 0x80140b8	// 80140b8 <_etoa.part.0+0x520>
  if ((value > PRINTF_MAX_FLOAT) || (value < -PRINTF_MAX_FLOAT)) {
 8013eca:	3200      	movi      	r2, 0
 8013ecc:	1379      	lrw      	r3, 0x41cdcd65	// 80140b0 <_etoa.part.0+0x518>
 8013ece:	6c2b      	mov      	r0, r10
 8013ed0:	6c53      	mov      	r1, r4
 8013ed2:	e3ffea0d 	bsr      	0x80112ec	// 80112ec <__gtdf2>
 8013ed6:	e94001fa 	bhz      	r0, 0x80142ca	// 80142ca <_etoa.part.0+0x732>
 8013eda:	3200      	movi      	r2, 0
 8013edc:	1376      	lrw      	r3, 0xc1cdcd65	// 80140b4 <_etoa.part.0+0x51c>
 8013ede:	6c2b      	mov      	r0, r10
 8013ee0:	6c53      	mov      	r1, r4
 8013ee2:	e3ffea45 	bsr      	0x801136c	// 801136c <__ltdf2>
 8013ee6:	e98001f2 	blz      	r0, 0x80142ca	// 80142ca <_etoa.part.0+0x732>
  if (value < 0) {
 8013eea:	3200      	movi      	r2, 0
 8013eec:	6ccb      	mov      	r3, r2
 8013eee:	6c2b      	mov      	r0, r10
 8013ef0:	6c53      	mov      	r1, r4
 8013ef2:	e3ffea3d 	bsr      	0x801136c	// 801136c <__ltdf2>
 8013ef6:	e9800330 	blz      	r0, 0x8014556	// 8014556 <_etoa.part.0+0x9be>
  bool negative = false;
 8013efa:	3300      	movi      	r3, 0
 8013efc:	b874      	st.w      	r3, (r14, 0x50)
  if (!(flags & FLAGS_PRECISION)) {
 8013efe:	9867      	ld.w      	r3, (r14, 0x1c)
 8013f00:	e5a32400 	andi      	r13, r3, 1024
 8013f04:	e92d02c3 	bnez      	r13, 0x801448a	// 801448a <_etoa.part.0+0x8f2>
 8013f08:	1369      	lrw      	r3, 0x412e8480	// 80140ac <_etoa.part.0+0x514>
 8013f0a:	ddae200b 	st.w      	r13, (r14, 0x2c)
 8013f0e:	b86d      	st.w      	r3, (r14, 0x34)
    prec = PRINTF_DEFAULT_FLOAT_PRECISION;
 8013f10:	ea0c0006 	movi      	r12, 6
 8013f14:	e62e0053 	addi      	r17, r14, 84
  int whole = (int)value;
 8013f18:	6c53      	mov      	r1, r4
 8013f1a:	6c2b      	mov      	r0, r10
 8013f1c:	dd8e2013 	st.w      	r12, (r14, 0x4c)
 8013f20:	ddae2011 	st.w      	r13, (r14, 0x44)
 8013f24:	e3ffea74 	bsr      	0x801140c	// 801140c <__fixdfsi>
 8013f28:	b80a      	st.w      	r0, (r14, 0x28)
  double tmp = (value - whole) * pow10[prec];
 8013f2a:	e3ffea3d 	bsr      	0x80113a4	// 80113a4 <__floatsidf>
 8013f2e:	6c83      	mov      	r2, r0
 8013f30:	6cc7      	mov      	r3, r1
 8013f32:	6c2b      	mov      	r0, r10
 8013f34:	6c53      	mov      	r1, r4
 8013f36:	e3ffe815 	bsr      	0x8010f60	// 8010f60 <__subdf3>
 8013f3a:	984b      	ld.w      	r2, (r14, 0x2c)
 8013f3c:	986d      	ld.w      	r3, (r14, 0x34)
 8013f3e:	e3ffe82f 	bsr      	0x8010f9c	// 8010f9c <__muldf3>
 8013f42:	b82f      	st.w      	r1, (r14, 0x3c)
 8013f44:	b810      	st.w      	r0, (r14, 0x40)
  unsigned long frac = (unsigned long)tmp;
 8013f46:	e3ffe34b 	bsr      	0x80105dc	// 80105dc <__fixunsdfsi>
 8013f4a:	b80e      	st.w      	r0, (r14, 0x38)
  diff = tmp - frac;
 8013f4c:	e3ffea98 	bsr      	0x801147c	// 801147c <__floatunsidf>
 8013f50:	da8e2010 	ld.w      	r20, (r14, 0x40)
 8013f54:	da6e200f 	ld.w      	r19, (r14, 0x3c)
 8013f58:	6c83      	mov      	r2, r0
 8013f5a:	6cc7      	mov      	r3, r1
 8013f5c:	c4144820 	lsli      	r0, r20, 0
 8013f60:	c4134821 	lsli      	r1, r19, 0
 8013f64:	e3ffe7fe 	bsr      	0x8010f60	// 8010f60 <__subdf3>
  if (diff > 0.5) {
 8013f68:	3200      	movi      	r2, 0
 8013f6a:	ea233fe0 	movih      	r3, 16352
  diff = tmp - frac;
 8013f6e:	b80f      	st.w      	r0, (r14, 0x3c)
 8013f70:	b830      	st.w      	r1, (r14, 0x40)
  if (diff > 0.5) {
 8013f72:	e3ffe9bd 	bsr      	0x80112ec	// 80112ec <__gtdf2>
 8013f76:	da4e200e 	ld.w      	r18, (r14, 0x38)
 8013f7a:	d9ae2011 	ld.w      	r13, (r14, 0x44)
 8013f7e:	d98e2013 	ld.w      	r12, (r14, 0x4c)
 8013f82:	e9600265 	blsz      	r0, 0x801444c	// 801444c <_etoa.part.0+0x8b4>
    ++frac;
 8013f86:	e6520000 	addi      	r18, r18, 1
    if (frac >= pow10[prec]) {
 8013f8a:	c4124820 	lsli      	r0, r18, 0
 8013f8e:	dd8e2010 	st.w      	r12, (r14, 0x40)
 8013f92:	ddae200f 	st.w      	r13, (r14, 0x3c)
 8013f96:	de4e200e 	st.w      	r18, (r14, 0x38)
 8013f9a:	e3ffea71 	bsr      	0x801147c	// 801147c <__floatunsidf>
 8013f9e:	984b      	ld.w      	r2, (r14, 0x2c)
 8013fa0:	986d      	ld.w      	r3, (r14, 0x34)
 8013fa2:	e3ffe9c5 	bsr      	0x801132c	// 801132c <__gedf2>
 8013fa6:	da4e200e 	ld.w      	r18, (r14, 0x38)
 8013faa:	d9ae200f 	ld.w      	r13, (r14, 0x3c)
 8013fae:	d98e2010 	ld.w      	r12, (r14, 0x40)
 8013fb2:	e9a002ab 	bhsz      	r0, 0x8014508	// 8014508 <_etoa.part.0+0x970>
  if (prec == 0U) {
 8013fb6:	e92c01dd 	bnez      	r12, 0x8014370	// 8014370 <_etoa.part.0+0x7d8>
    diff = value - (double)whole;
 8013fba:	980a      	ld.w      	r0, (r14, 0x28)
 8013fbc:	ddae200b 	st.w      	r13, (r14, 0x2c)
 8013fc0:	dd8e200d 	st.w      	r12, (r14, 0x34)
 8013fc4:	e3ffe9f0 	bsr      	0x80113a4	// 80113a4 <__floatsidf>
 8013fc8:	6c83      	mov      	r2, r0
 8013fca:	6cc7      	mov      	r3, r1
 8013fcc:	6c2b      	mov      	r0, r10
 8013fce:	6c53      	mov      	r1, r4
 8013fd0:	e3ffe7c8 	bsr      	0x8010f60	// 8010f60 <__subdf3>
    if ((!(diff < 0.5) || (diff > 0.5)) && (whole & 1)) {
 8013fd4:	d98e200d 	ld.w      	r12, (r14, 0x34)
 8013fd8:	6cb3      	mov      	r2, r12
 8013fda:	ea233fe0 	movih      	r3, 16352
    diff = value - (double)whole;
 8013fde:	6e83      	mov      	r10, r0
 8013fe0:	6d07      	mov      	r4, r1
    if ((!(diff < 0.5) || (diff > 0.5)) && (whole & 1)) {
 8013fe2:	e3ffe9c5 	bsr      	0x801136c	// 801136c <__ltdf2>
 8013fe6:	d9ae200b 	ld.w      	r13, (r14, 0x2c)
 8013fea:	e9800280 	blz      	r0, 0x80144ea	// 80144ea <_etoa.part.0+0x952>
 8013fee:	984a      	ld.w      	r2, (r14, 0x28)
 8013ff0:	e4622001 	andi      	r3, r2, 1
      ++whole;
 8013ff4:	3b40      	cmpnei      	r3, 0
 8013ff6:	c4620c20 	incf      	r3, r2, 0
 8013ffa:	c4620c41 	inct      	r3, r2, 1
 8013ffe:	b86a      	st.w      	r3, (r14, 0x28)
  while (len < PRINTF_FTOA_BUFFER_SIZE) {
 8014000:	eb4d0020 	cmpnei      	r13, 32
 8014004:	0ddf      	bf      	0x80143c2	// 80143c2 <_etoa.part.0+0x82a>
    buf[len++] = (char)(48 + (whole % 10));
 8014006:	ea0c000a 	movi      	r12, 10
 801400a:	980a      	ld.w      	r0, (r14, 0x28)
 801400c:	c5808043 	divs      	r3, r0, r12
 8014010:	c5838422 	mult      	r2, r3, r12
 8014014:	5849      	subu      	r2, r0, r2
 8014016:	222f      	addi      	r2, 48
 8014018:	e42d0000 	addi      	r1, r13, 1
 801401c:	d5b10022 	str.b      	r2, (r17, r13 << 0)
    if (!(whole /= 10)) {
 8014020:	e9030013 	bez      	r3, 0x8014046	// 8014046 <_etoa.part.0+0x4ae>
 8014024:	c431002d 	addu      	r13, r17, r1
  while (len < PRINTF_FTOA_BUFFER_SIZE) {
 8014028:	eb410020 	cmpnei      	r1, 32
 801402c:	0dcb      	bf      	0x80143c2	// 80143c2 <_etoa.part.0+0x82a>
    buf[len++] = (char)(48 + (whole % 10));
 801402e:	c5838042 	divs      	r2, r3, r12
 8014032:	c5828420 	mult      	r0, r2, r12
 8014036:	60c2      	subu      	r3, r0
 8014038:	232f      	addi      	r3, 48
 801403a:	d40d8003 	stbi.b      	r3, (r13)
 801403e:	2100      	addi      	r1, 1
    if (!(whole /= 10)) {
 8014040:	6ccb      	mov      	r3, r2
 8014042:	e922fff3 	bnez      	r2, 0x8014028	// 8014028 <_etoa.part.0+0x490>
  if (!(flags & FLAGS_LEFT) && (flags & FLAGS_ZEROPAD)) {
 8014046:	9867      	ld.w      	r3, (r14, 0x1c)
 8014048:	e4632003 	andi      	r3, r3, 3
 801404c:	3b41      	cmpnei      	r3, 1
 801404e:	e8400265 	bf      	0x8014518	// 8014518 <_etoa.part.0+0x980>
  if (len < PRINTF_FTOA_BUFFER_SIZE) {
 8014052:	eb410020 	cmpnei      	r1, 32
 8014056:	e84002b5 	bf      	0x80145c0	// 80145c0 <_etoa.part.0+0xa28>
    if (negative) {
 801405a:	9854      	ld.w      	r2, (r14, 0x50)
 801405c:	e9220242 	bnez      	r2, 0x80144e0	// 80144e0 <_etoa.part.0+0x948>
    else if (flags & FLAGS_PLUS) {
 8014060:	9847      	ld.w      	r2, (r14, 0x1c)
 8014062:	e4422004 	andi      	r2, r2, 4
 8014066:	e90202a3 	bez      	r2, 0x80145ac	// 80145ac <_etoa.part.0+0xa14>
      buf[len++] = '+';  // ignore the space if the '+' exists
 801406a:	322b      	movi      	r2, 43
 801406c:	5982      	addi      	r4, r1, 1
 801406e:	d4310022 	str.b      	r2, (r17, r1 << 0)
 8014072:	05ae      	br      	0x80143ce	// 80143ce <_etoa.part.0+0x836>
 8014074:	509f79fb 	.long	0x509f79fb
 8014078:	3fd34413 	.long	0x3fd34413
 801407c:	8b60c8b3 	.long	0x8b60c8b3
 8014080:	3fc68a28 	.long	0x3fc68a28
 8014084:	636f4361 	.long	0x636f4361
 8014088:	3fd287a7 	.long	0x3fd287a7
 801408c:	0979a371 	.long	0x0979a371
 8014090:	400a934f 	.long	0x400a934f
 8014094:	bbb55516 	.long	0xbbb55516
 8014098:	40026bb1 	.long	0x40026bb1
 801409c:	fefa39ef 	.long	0xfefa39ef
 80140a0:	3fe62e42 	.long	0x3fe62e42
 80140a4:	eb1c432d 	.long	0xeb1c432d
 80140a8:	3f1a36e2 	.long	0x3f1a36e2
 80140ac:	412e8480 	.long	0x412e8480
 80140b0:	41cdcd65 	.long	0x41cdcd65
 80140b4:	c1cdcd65 	.long	0xc1cdcd65
    return _out_rev(out, buffer, idx, maxlen, (flags & FLAGS_PLUS) ? "fni+" : "fni", (flags & FLAGS_PLUS) ? 4U : 3U, width, flags);
 80140b8:	9827      	ld.w      	r1, (r14, 0x1c)
 80140ba:	e4612004 	andi      	r3, r1, 4
 80140be:	3b40      	cmpnei      	r3, 0
 80140c0:	0140      	lrw      	r2, 0x80169ec	// 801443c <_etoa.part.0+0x8a4>
 80140c2:	ea8a00e0 	lrw      	r10, 0x80169e4	// 8014440 <_etoa.part.0+0x8a8>
 80140c6:	c5420c20 	incf      	r10, r2, 0
 80140ca:	ea110004 	movi      	r17, 4
 80140ce:	3b40      	cmpnei      	r3, 0
 80140d0:	3303      	movi      	r3, 3
 80140d2:	c4710c40 	inct      	r3, r17, 0
 80140d6:	6c8f      	mov      	r2, r3
 80140d8:	b86a      	st.w      	r3, (r14, 0x28)
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 80140da:	e4612003 	andi      	r3, r1, 3
 80140de:	e9230044 	bnez      	r3, 0x8014166	// 8014166 <_etoa.part.0+0x5ce>
    for (size_t i = len; i < width; i++) {
 80140e2:	6648      	cmphs      	r2, r9
 80140e4:	6ccb      	mov      	r3, r2
 80140e6:	0840      	bt      	0x8014166	// 8014166 <_etoa.part.0+0x5ce>
 80140e8:	6caf      	mov      	r2, r11
 80140ea:	c5630084 	subu      	r4, r3, r11
      out(' ', buffer, idx++, maxlen);
 80140ee:	e6220000 	addi      	r17, r2, 1
 80140f2:	6cdf      	mov      	r3, r7
 80140f4:	6c5b      	mov      	r1, r6
 80140f6:	3020      	movi      	r0, 32
 80140f8:	7bd5      	jsr      	r5
 80140fa:	c4114822 	lsli      	r2, r17, 0
    for (size_t i = len; i < width; i++) {
 80140fe:	5c68      	addu      	r3, r4, r2
 8014100:	664c      	cmphs      	r3, r9
 8014102:	0ff6      	bf      	0x80140ee	// 80140ee <_etoa.part.0+0x556>
 8014104:	c52b0024 	addu      	r4, r11, r9
 8014108:	986a      	ld.w      	r3, (r14, 0x28)
 801410a:	5c6d      	subu      	r3, r4, r3
 801410c:	b86b      	st.w      	r3, (r14, 0x2c)
 801410e:	988a      	ld.w      	r4, (r14, 0x28)
 8014110:	6c8f      	mov      	r2, r3
 8014112:	042e      	br      	0x801416e	// 801416e <_etoa.part.0+0x5d6>
      if ((prec > 0) && (flags & FLAGS_PRECISION)) {
 8014114:	e908fe98 	bez      	r8, 0x8013e44	// 8013e44 <_etoa.part.0+0x2ac>
        --prec;
 8014118:	9874      	ld.w      	r3, (r14, 0x50)
 801411a:	3b40      	cmpnei      	r3, 0
 801411c:	c5080d01 	dect      	r8, r8, 1
 8014120:	0692      	br      	0x8013e44	// 8013e44 <_etoa.part.0+0x2ac>
  idx = _ftoa(out, buffer, idx, maxlen, negative ? -value : value, prec, fwidth, flags & ~FLAGS_ADAPT_EXP);
 8014122:	ea238000 	movih      	r3, 32768
 8014126:	60d0      	addu      	r3, r4
 8014128:	6d0f      	mov      	r4, r3
 801412a:	06b2      	br      	0x8013e8e	// 8013e8e <_etoa.part.0+0x2f6>
    value = -value;
 801412c:	986b      	ld.w      	r3, (r14, 0x2c)
 801412e:	ea228000 	movih      	r2, 32768
 8014132:	5b88      	addu      	r4, r3, r2
 8014134:	e800fd4e 	br      	0x8013bd0	// 8013bd0 <_etoa.part.0+0x38>
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 8014138:	9867      	ld.w      	r3, (r14, 0x1c)
 801413a:	e4632003 	andi      	r3, r3, 3
 801413e:	e923009c 	bnez      	r3, 0x8014276	// 8014276 <_etoa.part.0+0x6de>
    for (size_t i = len; i < width; i++) {
 8014142:	3303      	movi      	r3, 3
 8014144:	664c      	cmphs      	r3, r9
 8014146:	0898      	bt      	0x8014276	// 8014276 <_etoa.part.0+0x6de>
 8014148:	e48b1002 	subi      	r4, r11, 3
 801414c:	6124      	addu      	r4, r9
 801414e:	6caf      	mov      	r2, r11
      out(' ', buffer, idx++, maxlen);
 8014150:	e6220000 	addi      	r17, r2, 1
 8014154:	6cdf      	mov      	r3, r7
 8014156:	6c5b      	mov      	r1, r6
 8014158:	3020      	movi      	r0, 32
 801415a:	7bd5      	jsr      	r5
 801415c:	c4114822 	lsli      	r2, r17, 0
    for (size_t i = len; i < width; i++) {
 8014160:	650a      	cmpne      	r2, r4
 8014162:	0bf7      	bt      	0x8014150	// 8014150 <_etoa.part.0+0x5b8>
 8014164:	048b      	br      	0x801427a	// 801427a <_etoa.part.0+0x6e2>
 8014166:	dd6e200b 	st.w      	r11, (r14, 0x2c)
 801416a:	6d0b      	mov      	r4, r2
 801416c:	984b      	ld.w      	r2, (r14, 0x2c)
 801416e:	6cd3      	mov      	r3, r4
 8014170:	2b00      	subi      	r3, 1
 8014172:	628c      	addu      	r10, r3
    out(buf[--len], buffer, idx++, maxlen);
 8014174:	e6220000 	addi      	r17, r2, 1
 8014178:	d80a0000 	ld.b      	r0, (r10, 0x0)
 801417c:	6cdf      	mov      	r3, r7
 801417e:	6c5b      	mov      	r1, r6
 8014180:	2c00      	subi      	r4, 1
 8014182:	7bd5      	jsr      	r5
 8014184:	e54a1000 	subi      	r10, r10, 1
 8014188:	c4114822 	lsli      	r2, r17, 0
  while (len) {
 801418c:	e924fff4 	bnez      	r4, 0x8014174	// 8014174 <_etoa.part.0+0x5dc>
 8014190:	986b      	ld.w      	r3, (r14, 0x2c)
 8014192:	988a      	ld.w      	r4, (r14, 0x28)
 8014194:	610c      	addu      	r4, r3
  if (flags & FLAGS_LEFT) {
 8014196:	9869      	ld.w      	r3, (r14, 0x24)
 8014198:	e9030011 	bez      	r3, 0x80141ba	// 80141ba <_etoa.part.0+0x622>
    while (idx - start_idx < width) {
 801419c:	c5640083 	subu      	r3, r4, r11
 80141a0:	664c      	cmphs      	r3, r9
 80141a2:	080c      	bt      	0x80141ba	// 80141ba <_etoa.part.0+0x622>
 80141a4:	6c93      	mov      	r2, r4
      out(' ', buffer, idx++, maxlen);
 80141a6:	2400      	addi      	r4, 1
 80141a8:	6cdf      	mov      	r3, r7
 80141aa:	6c5b      	mov      	r1, r6
 80141ac:	3020      	movi      	r0, 32
 80141ae:	7bd5      	jsr      	r5
    while (idx - start_idx < width) {
 80141b0:	c5640083 	subu      	r3, r4, r11
 80141b4:	664c      	cmphs      	r3, r9
      out(' ', buffer, idx++, maxlen);
 80141b6:	6c93      	mov      	r2, r4
    while (idx - start_idx < width) {
 80141b8:	0ff7      	bf      	0x80141a6	// 80141a6 <_etoa.part.0+0x60e>

  // output the exponent part
  if (!prec && minwidth) {
 80141ba:	e928005a 	bnez      	r8, 0x801426e	// 801426e <_etoa.part.0+0x6d6>
 80141be:	e9100058 	bez      	r16, 0x801426e	// 801426e <_etoa.part.0+0x6d6>
    // output the exponential symbol
    out((flags & FLAGS_UPPERCASE) ? 'E' : 'e', buffer, idx++, maxlen);
 80141c2:	9867      	ld.w      	r3, (r14, 0x1c)
 80141c4:	e4632020 	andi      	r3, r3, 32
 80141c8:	3b40      	cmpnei      	r3, 0
 80141ca:	ea0c0065 	movi      	r12, 101
 80141ce:	3045      	movi      	r0, 69
 80141d0:	6cdf      	mov      	r3, r7
 80141d2:	6c93      	mov      	r2, r4
 80141d4:	6c5b      	mov      	r1, r6
 80141d6:	c40c0c20 	incf      	r0, r12, 0
 80141da:	7bd5      	jsr      	r5
 80141dc:	e62e0053 	addi      	r17, r14, 84
    // output the exponent value
    idx = _ntoa_long(out, buffer, idx, maxlen, (expval < 0) ? -expval : expval, expval < 0, 10, 0, minwidth-1, FLAGS_ZEROPAD | FLAGS_PLUS);
 80141e0:	9848      	ld.w      	r2, (r14, 0x20)
    out((flags & FLAGS_UPPERCASE) ? 'E' : 'e', buffer, idx++, maxlen);
 80141e2:	e5240000 	addi      	r9, r4, 1
    idx = _ntoa_long(out, buffer, idx, maxlen, (expval < 0) ? -expval : expval, expval < 0, 10, 0, minwidth-1, FLAGS_ZEROPAD | FLAGS_PLUS);
 80141e6:	c4020203 	abs      	r3, r2
 80141ea:	c7e24852 	lsri      	r18, r2, 31
 80141ee:	e6101000 	subi      	r16, r16, 1
 80141f2:	c4114821 	lsli      	r1, r17, 0
      const char digit = (char)(value % base);
 80141f6:	ea0d000a 	movi      	r13, 10
 80141fa:	ea0c0020 	movi      	r12, 32
 80141fe:	c5a38022 	divu      	r2, r3, r13
 8014202:	c5a28420 	mult      	r0, r2, r13
 8014206:	60c2      	subu      	r3, r0
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 8014208:	232f      	addi      	r3, 48
 801420a:	a160      	st.b      	r3, (r1, 0x0)
 801420c:	e5080000 	addi      	r8, r8, 1
      value /= base;
 8014210:	6ccb      	mov      	r3, r2
    } while (value && (len < PRINTF_NTOA_BUFFER_SIZE));
 8014212:	e9020005 	bez      	r2, 0x801421c	// 801421c <_etoa.part.0+0x684>
 8014216:	2100      	addi      	r1, 1
 8014218:	e82cfff3 	bnezad      	r12, 0x80141fe	// 80141fe <_etoa.part.0+0x666>
  return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags);
 801421c:	3305      	movi      	r3, 5
 801421e:	b866      	st.w      	r3, (r14, 0x18)
 8014220:	3300      	movi      	r3, 0
 8014222:	b864      	st.w      	r3, (r14, 0x10)
 8014224:	330a      	movi      	r3, 10
 8014226:	b863      	st.w      	r3, (r14, 0xc)
 8014228:	de0e2005 	st.w      	r16, (r14, 0x14)
 801422c:	6cdf      	mov      	r3, r7
 801422e:	de4e2002 	st.w      	r18, (r14, 0x8)
 8014232:	dd0e2001 	st.w      	r8, (r14, 0x4)
 8014236:	de2e2000 	st.w      	r17, (r14, 0x0)
 801423a:	6ca7      	mov      	r2, r9
 801423c:	6c5b      	mov      	r1, r6
 801423e:	6c17      	mov      	r0, r5
 8014240:	e3fffba6 	bsr      	0x801398c	// 801398c <_ntoa_format>
    // might need to right-pad spaces
    if (flags & FLAGS_LEFT) {
 8014244:	9869      	ld.w      	r3, (r14, 0x24)
  return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags);
 8014246:	6d03      	mov      	r4, r0
    if (flags & FLAGS_LEFT) {
 8014248:	e9030013 	bez      	r3, 0x801426e	// 801426e <_etoa.part.0+0x6d6>
      while (idx - start_idx < width) out(' ', buffer, idx++, maxlen);
 801424c:	c5600083 	subu      	r3, r0, r11
 8014250:	d90e200c 	ld.w      	r8, (r14, 0x30)
 8014254:	660c      	cmphs      	r3, r8
 8014256:	080c      	bt      	0x801426e	// 801426e <_etoa.part.0+0x6d6>
 8014258:	6c83      	mov      	r2, r0
 801425a:	2400      	addi      	r4, 1
 801425c:	6cdf      	mov      	r3, r7
 801425e:	6c5b      	mov      	r1, r6
 8014260:	3020      	movi      	r0, 32
 8014262:	7bd5      	jsr      	r5
 8014264:	c5640083 	subu      	r3, r4, r11
 8014268:	660c      	cmphs      	r3, r8
 801426a:	6c93      	mov      	r2, r4
 801426c:	0ff7      	bf      	0x801425a	// 801425a <_etoa.part.0+0x6c2>
    }
  }
  return idx;
}
 801426e:	6c13      	mov      	r0, r4
 8014270:	141d      	addi      	r14, r14, 116
 8014272:	ebc00058 	pop      	r4-r11, r15, r16-r17
    for (size_t i = len; i < width; i++) {
 8014276:	c40b4831 	lsli      	r17, r11, 0
 801427a:	e4710002 	addi      	r3, r17, 3
 801427e:	c4114822 	lsli      	r2, r17, 0
 8014282:	ea8a0071 	lrw      	r10, 0x80169f2	// 8014444 <_etoa.part.0+0x8ac>
 8014286:	c4034831 	lsli      	r17, r3, 0
    out(buf[--len], buffer, idx++, maxlen);
 801428a:	5a82      	addi      	r4, r2, 1
 801428c:	d80a0000 	ld.b      	r0, (r10, 0x0)
 8014290:	6cdf      	mov      	r3, r7
 8014292:	6c5b      	mov      	r1, r6
 8014294:	7bd5      	jsr      	r5
  while (len) {
 8014296:	c6240480 	cmpne      	r4, r17
 801429a:	e54a1000 	subi      	r10, r10, 1
 801429e:	6c93      	mov      	r2, r4
 80142a0:	0bf5      	bt      	0x801428a	// 801428a <_etoa.part.0+0x6f2>
  if (flags & FLAGS_LEFT) {
 80142a2:	9869      	ld.w      	r3, (r14, 0x24)
 80142a4:	c4044831 	lsli      	r17, r4, 0
 80142a8:	e903ff89 	bez      	r3, 0x80141ba	// 80141ba <_etoa.part.0+0x622>
    while (idx - start_idx < width) {
 80142ac:	c5640083 	subu      	r3, r4, r11
 80142b0:	664c      	cmphs      	r3, r9
 80142b2:	0b84      	bt      	0x80141ba	// 80141ba <_etoa.part.0+0x622>
      out(' ', buffer, idx++, maxlen);
 80142b4:	2400      	addi      	r4, 1
 80142b6:	6cdf      	mov      	r3, r7
 80142b8:	6c5b      	mov      	r1, r6
 80142ba:	3020      	movi      	r0, 32
 80142bc:	7bd5      	jsr      	r5
    while (idx - start_idx < width) {
 80142be:	c5640083 	subu      	r3, r4, r11
 80142c2:	664c      	cmphs      	r3, r9
      out(' ', buffer, idx++, maxlen);
 80142c4:	6c93      	mov      	r2, r4
    while (idx - start_idx < width) {
 80142c6:	0ff7      	bf      	0x80142b4	// 80142b4 <_etoa.part.0+0x71c>
 80142c8:	0779      	br      	0x80141ba	// 80141ba <_etoa.part.0+0x622>
  idx = _ftoa(out, buffer, idx, maxlen, negative ? -value : value, prec, fwidth, flags & ~FLAGS_ADAPT_EXP);
 80142ca:	9867      	ld.w      	r3, (r14, 0x1c)
 80142cc:	3b8b      	bclri      	r3, 11
 80142ce:	b864      	st.w      	r3, (r14, 0x10)
 80142d0:	b881      	st.w      	r4, (r14, 0x4)
 80142d2:	dd2e2003 	st.w      	r9, (r14, 0xc)
 80142d6:	dd0e2002 	st.w      	r8, (r14, 0x8)
 80142da:	dd4e2000 	st.w      	r10, (r14, 0x0)
 80142de:	6cdf      	mov      	r3, r7
 80142e0:	6caf      	mov      	r2, r11
 80142e2:	6c5b      	mov      	r1, r6
 80142e4:	6c17      	mov      	r0, r5
 80142e6:	e3fffc59 	bsr      	0x8013b98	// 8013b98 <_etoa.part.0>
 80142ea:	6d03      	mov      	r4, r0
 80142ec:	0767      	br      	0x80141ba	// 80141ba <_etoa.part.0+0x622>
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 80142ee:	9867      	ld.w      	r3, (r14, 0x1c)
 80142f0:	e4632003 	andi      	r3, r3, 3
 80142f4:	e923003b 	bnez      	r3, 0x801436a	// 801436a <_etoa.part.0+0x7d2>
    for (size_t i = len; i < width; i++) {
 80142f8:	3304      	movi      	r3, 4
 80142fa:	664c      	cmphs      	r3, r9
 80142fc:	0837      	bt      	0x801436a	// 801436a <_etoa.part.0+0x7d2>
 80142fe:	e48b1003 	subi      	r4, r11, 4
 8014302:	6124      	addu      	r4, r9
 8014304:	6caf      	mov      	r2, r11
      out(' ', buffer, idx++, maxlen);
 8014306:	e6220000 	addi      	r17, r2, 1
 801430a:	6cdf      	mov      	r3, r7
 801430c:	6c5b      	mov      	r1, r6
 801430e:	3020      	movi      	r0, 32
 8014310:	7bd5      	jsr      	r5
 8014312:	c4114822 	lsli      	r2, r17, 0
    for (size_t i = len; i < width; i++) {
 8014316:	650a      	cmpne      	r2, r4
 8014318:	0bf7      	bt      	0x8014306	// 8014306 <_etoa.part.0+0x76e>
 801431a:	e4710003 	addi      	r3, r17, 4
 801431e:	c4114822 	lsli      	r2, r17, 0
 8014322:	ea8a004a 	lrw      	r10, 0x80169f7	// 8014448 <_etoa.part.0+0x8b0>
 8014326:	c4034831 	lsli      	r17, r3, 0
    out(buf[--len], buffer, idx++, maxlen);
 801432a:	5a82      	addi      	r4, r2, 1
 801432c:	d80a0000 	ld.b      	r0, (r10, 0x0)
 8014330:	6cdf      	mov      	r3, r7
 8014332:	6c5b      	mov      	r1, r6
 8014334:	7bd5      	jsr      	r5
  while (len) {
 8014336:	c6240480 	cmpne      	r4, r17
 801433a:	e54a1000 	subi      	r10, r10, 1
 801433e:	6c93      	mov      	r2, r4
 8014340:	0bf5      	bt      	0x801432a	// 801432a <_etoa.part.0+0x792>
  if (flags & FLAGS_LEFT) {
 8014342:	9869      	ld.w      	r3, (r14, 0x24)
 8014344:	c4044831 	lsli      	r17, r4, 0
 8014348:	e903ff39 	bez      	r3, 0x80141ba	// 80141ba <_etoa.part.0+0x622>
    while (idx - start_idx < width) {
 801434c:	c5640083 	subu      	r3, r4, r11
 8014350:	664c      	cmphs      	r3, r9
 8014352:	0b34      	bt      	0x80141ba	// 80141ba <_etoa.part.0+0x622>
      out(' ', buffer, idx++, maxlen);
 8014354:	2400      	addi      	r4, 1
 8014356:	6cdf      	mov      	r3, r7
 8014358:	6c5b      	mov      	r1, r6
 801435a:	3020      	movi      	r0, 32
 801435c:	7bd5      	jsr      	r5
    while (idx - start_idx < width) {
 801435e:	c5640083 	subu      	r3, r4, r11
 8014362:	664c      	cmphs      	r3, r9
      out(' ', buffer, idx++, maxlen);
 8014364:	6c93      	mov      	r2, r4
    while (idx - start_idx < width) {
 8014366:	0ff7      	bf      	0x8014354	// 8014354 <_etoa.part.0+0x7bc>
 8014368:	0729      	br      	0x80141ba	// 80141ba <_etoa.part.0+0x622>
    for (size_t i = len; i < width; i++) {
 801436a:	c40b4831 	lsli      	r17, r11, 0
 801436e:	07d6      	br      	0x801431a	// 801431a <_etoa.part.0+0x782>
    while (len < PRINTF_FTOA_BUFFER_SIZE) {
 8014370:	eb4d0020 	cmpnei      	r13, 32
 8014374:	0c27      	bf      	0x80143c2	// 80143c2 <_etoa.part.0+0x82a>
      buf[len++] = (char)(48U + (frac % 10U));
 8014376:	320a      	movi      	r2, 10
 8014378:	c4528023 	divu      	r3, r18, r2
 801437c:	c4438420 	mult      	r0, r3, r2
 8014380:	c4120092 	subu      	r18, r18, r0
 8014384:	e652002f 	addi      	r18, r18, 48
      --count;
 8014388:	e58c1000 	subi      	r12, r12, 1
      buf[len++] = (char)(48U + (frac % 10U));
 801438c:	e42d0000 	addi      	r1, r13, 1
 8014390:	d5b10032 	str.b      	r18, (r17, r13 << 0)
      if (!(frac /= 10U)) {
 8014394:	e90300ed 	bez      	r3, 0x801456e	// 801456e <_etoa.part.0+0x9d6>
 8014398:	c4310032 	addu      	r18, r17, r1
      buf[len++] = (char)(48U + (frac % 10U));
 801439c:	6f4b      	mov      	r13, r2
 801439e:	040f      	br      	0x80143bc	// 80143bc <_etoa.part.0+0x824>
 80143a0:	c5a38022 	divu      	r2, r3, r13
 80143a4:	c5a28420 	mult      	r0, r2, r13
 80143a8:	60c2      	subu      	r3, r0
 80143aa:	232f      	addi      	r3, 48
 80143ac:	d4128003 	stbi.b      	r3, (r18)
      --count;
 80143b0:	e58c1000 	subi      	r12, r12, 1
      buf[len++] = (char)(48U + (frac % 10U));
 80143b4:	2100      	addi      	r1, 1
      if (!(frac /= 10U)) {
 80143b6:	6ccb      	mov      	r3, r2
 80143b8:	e90200db 	bez      	r2, 0x801456e	// 801456e <_etoa.part.0+0x9d6>
    while (len < PRINTF_FTOA_BUFFER_SIZE) {
 80143bc:	eb410020 	cmpnei      	r1, 32
 80143c0:	0bf0      	bt      	0x80143a0	// 80143a0 <_etoa.part.0+0x808>
  if (!(flags & FLAGS_LEFT) && (flags & FLAGS_ZEROPAD)) {
 80143c2:	9867      	ld.w      	r3, (r14, 0x1c)
 80143c4:	e4632003 	andi      	r3, r3, 3
 80143c8:	3b41      	cmpnei      	r3, 1
 80143ca:	0ca6      	bf      	0x8014516	// 8014516 <_etoa.part.0+0x97e>
 80143cc:	3420      	movi      	r4, 32
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 80143ce:	e9230087 	bnez      	r3, 0x80144dc	// 80144dc <_etoa.part.0+0x944>
    for (size_t i = len; i < width; i++) {
 80143d2:	6650      	cmphs      	r4, r9
 80143d4:	0884      	bt      	0x80144dc	// 80144dc <_etoa.part.0+0x944>
 80143d6:	c52b002a 	addu      	r10, r11, r9
 80143da:	6292      	subu      	r10, r4
 80143dc:	6caf      	mov      	r2, r11
 80143de:	b88a      	st.w      	r4, (r14, 0x28)
      out(' ', buffer, idx++, maxlen);
 80143e0:	5a82      	addi      	r4, r2, 1
 80143e2:	6cdf      	mov      	r3, r7
 80143e4:	6c5b      	mov      	r1, r6
 80143e6:	3020      	movi      	r0, 32
 80143e8:	7bd5      	jsr      	r5
    for (size_t i = len; i < width; i++) {
 80143ea:	6692      	cmpne      	r4, r10
 80143ec:	6c93      	mov      	r2, r4
 80143ee:	0bf9      	bt      	0x80143e0	// 80143e0 <_etoa.part.0+0x848>
 80143f0:	6f13      	mov      	r12, r4
 80143f2:	988a      	ld.w      	r4, (r14, 0x28)
 80143f4:	5c63      	subi      	r3, r4, 1
 80143f6:	c4710031 	addu      	r17, r17, r3
 80143fa:	6130      	addu      	r4, r12
 80143fc:	6cb3      	mov      	r2, r12
    out(buf[--len], buffer, idx++, maxlen);
 80143fe:	e5420000 	addi      	r10, r2, 1
 8014402:	d8110000 	ld.b      	r0, (r17, 0x0)
 8014406:	6cdf      	mov      	r3, r7
 8014408:	6c5b      	mov      	r1, r6
 801440a:	7bd5      	jsr      	r5
  while (len) {
 801440c:	652a      	cmpne      	r10, r4
 801440e:	e6311000 	subi      	r17, r17, 1
 8014412:	6cab      	mov      	r2, r10
 8014414:	0bf5      	bt      	0x80143fe	// 80143fe <_etoa.part.0+0x866>
  if (flags & FLAGS_LEFT) {
 8014416:	9869      	ld.w      	r3, (r14, 0x24)
 8014418:	6f2b      	mov      	r12, r10
 801441a:	e903fed0 	bez      	r3, 0x80141ba	// 80141ba <_etoa.part.0+0x622>
    while (idx - start_idx < width) {
 801441e:	632e      	subu      	r12, r11
 8014420:	6670      	cmphs      	r12, r9
 8014422:	0acc      	bt      	0x80141ba	// 80141ba <_etoa.part.0+0x622>
      out(' ', buffer, idx++, maxlen);
 8014424:	5a82      	addi      	r4, r2, 1
 8014426:	6cdf      	mov      	r3, r7
 8014428:	6c5b      	mov      	r1, r6
 801442a:	3020      	movi      	r0, 32
 801442c:	7bd5      	jsr      	r5
    while (idx - start_idx < width) {
 801442e:	c5640083 	subu      	r3, r4, r11
 8014432:	664c      	cmphs      	r3, r9
      out(' ', buffer, idx++, maxlen);
 8014434:	6c93      	mov      	r2, r4
    while (idx - start_idx < width) {
 8014436:	0ff7      	bf      	0x8014424	// 8014424 <_etoa.part.0+0x88c>
 8014438:	06c1      	br      	0x80141ba	// 80141ba <_etoa.part.0+0x622>
 801443a:	0000      	.short	0x0000
 801443c:	080169ec 	.long	0x080169ec
 8014440:	080169e4 	.long	0x080169e4
 8014444:	080169f2 	.long	0x080169f2
 8014448:	080169f7 	.long	0x080169f7
  else if (diff < 0.5) {
 801444c:	3200      	movi      	r2, 0
 801444e:	ea233fe0 	movih      	r3, 16352
 8014452:	980f      	ld.w      	r0, (r14, 0x3c)
 8014454:	9830      	ld.w      	r1, (r14, 0x40)
 8014456:	de4e200e 	st.w      	r18, (r14, 0x38)
 801445a:	dd8e200d 	st.w      	r12, (r14, 0x34)
 801445e:	ddae200b 	st.w      	r13, (r14, 0x2c)
 8014462:	e3ffe785 	bsr      	0x801136c	// 801136c <__ltdf2>
 8014466:	d9ae200b 	ld.w      	r13, (r14, 0x2c)
 801446a:	d98e200d 	ld.w      	r12, (r14, 0x34)
 801446e:	da4e200e 	ld.w      	r18, (r14, 0x38)
 8014472:	e980fda2 	blz      	r0, 0x8013fb6	// 8013fb6 <_etoa.part.0+0x41e>
  else if ((frac == 0U) || (frac & 1U)) {
 8014476:	e9120006 	bez      	r18, 0x8014482	// 8014482 <_etoa.part.0+0x8ea>
 801447a:	e4722001 	andi      	r3, r18, 1
 801447e:	e903fd9c 	bez      	r3, 0x8013fb6	// 8013fb6 <_etoa.part.0+0x41e>
    ++frac;
 8014482:	e6520000 	addi      	r18, r18, 1
 8014486:	e800fd98 	br      	0x8013fb6	// 8013fb6 <_etoa.part.0+0x41e>
  while ((len < PRINTF_FTOA_BUFFER_SIZE) && (prec > 9U)) {
 801448a:	eb080009 	cmphsi      	r8, 10
 801448e:	0c9e      	bf      	0x80145ca	// 80145ca <_etoa.part.0+0xa32>
    buf[len++] = '0';
 8014490:	e62e0053 	addi      	r17, r14, 84
 8014494:	3130      	movi      	r1, 48
 8014496:	dc310000 	st.b      	r1, (r17, 0x0)
    prec--;
 801449a:	e5881000 	subi      	r12, r8, 1
 801449e:	e44e0054 	addi      	r2, r14, 85
 80144a2:	e4081008 	subi      	r0, r8, 9
 80144a6:	ea0d0001 	movi      	r13, 1
    buf[len++] = '0';
 80144aa:	331f      	movi      	r3, 31
  while ((len < PRINTF_FTOA_BUFFER_SIZE) && (prec > 9U)) {
 80144ac:	6742      	cmpne      	r0, r13
 80144ae:	0c09      	bf      	0x80144c0	// 80144c0 <_etoa.part.0+0x928>
    buf[len++] = '0';
 80144b0:	e5ad0000 	addi      	r13, r13, 1
 80144b4:	d4028001 	stbi.b      	r1, (r2)
    prec--;
 80144b8:	e58c1000 	subi      	r12, r12, 1
  while ((len < PRINTF_FTOA_BUFFER_SIZE) && (prec > 9U)) {
 80144bc:	e823fff8 	bnezad      	r3, 0x80144ac	// 80144ac <_etoa.part.0+0x914>
 80144c0:	124a      	lrw      	r2, 0x80169fc	// 80145e8 <_etoa.part.0+0xa50>
 80144c2:	c46c4823 	lsli      	r3, r12, 3
 80144c6:	60c8      	addu      	r3, r2
 80144c8:	9340      	ld.w      	r2, (r3, 0x0)
 80144ca:	9361      	ld.w      	r3, (r3, 0x4)
 80144cc:	b84b      	st.w      	r2, (r14, 0x2c)
 80144ce:	b86d      	st.w      	r3, (r14, 0x34)
 80144d0:	e800fd24 	br      	0x8013f18	// 8013f18 <_etoa.part.0+0x380>
      if ((int)prec > expval) {
 80144d4:	ea080000 	movi      	r8, 0
 80144d8:	e800fcae 	br      	0x8013e34	// 8013e34 <_etoa.part.0+0x29c>
    for (size_t i = len; i < width; i++) {
 80144dc:	6f2f      	mov      	r12, r11
 80144de:	078b      	br      	0x80143f4	// 80143f4 <_etoa.part.0+0x85c>
      buf[len++] = '-';
 80144e0:	322d      	movi      	r2, 45
 80144e2:	5982      	addi      	r4, r1, 1
 80144e4:	d4310022 	str.b      	r2, (r17, r1 << 0)
 80144e8:	0773      	br      	0x80143ce	// 80143ce <_etoa.part.0+0x836>
    if ((!(diff < 0.5) || (diff > 0.5)) && (whole & 1)) {
 80144ea:	d98e200d 	ld.w      	r12, (r14, 0x34)
 80144ee:	6cb3      	mov      	r2, r12
 80144f0:	ea233fe0 	movih      	r3, 16352
 80144f4:	6c2b      	mov      	r0, r10
 80144f6:	6c53      	mov      	r1, r4
 80144f8:	e3ffe6fa 	bsr      	0x80112ec	// 80112ec <__gtdf2>
 80144fc:	d9ae200b 	ld.w      	r13, (r14, 0x2c)
 8014500:	e960fd80 	blsz      	r0, 0x8014000	// 8014000 <_etoa.part.0+0x468>
 8014504:	e800fd75 	br      	0x8013fee	// 8013fee <_etoa.part.0+0x456>
      ++whole;
 8014508:	986a      	ld.w      	r3, (r14, 0x28)
 801450a:	2300      	addi      	r3, 1
 801450c:	b86a      	st.w      	r3, (r14, 0x28)
      frac = 0;
 801450e:	ea120000 	movi      	r18, 0
 8014512:	e800fd52 	br      	0x8013fb6	// 8013fb6 <_etoa.part.0+0x41e>
  if (!(flags & FLAGS_LEFT) && (flags & FLAGS_ZEROPAD)) {
 8014516:	3120      	movi      	r1, 32
    if (width && (negative || (flags & (FLAGS_PLUS | FLAGS_SPACE)))) {
 8014518:	e9090044 	bez      	r9, 0x80145a0	// 80145a0 <_etoa.part.0+0xa08>
 801451c:	9874      	ld.w      	r3, (r14, 0x50)
 801451e:	e9230007 	bnez      	r3, 0x801452c	// 801452c <_etoa.part.0+0x994>
 8014522:	9867      	ld.w      	r3, (r14, 0x1c)
 8014524:	e463200c 	andi      	r3, r3, 12
 8014528:	e9030004 	bez      	r3, 0x8014530	// 8014530 <_etoa.part.0+0x998>
      width--;
 801452c:	e5291000 	subi      	r9, r9, 1
    while ((len < width) && (len < PRINTF_FTOA_BUFFER_SIZE)) {
 8014530:	6644      	cmphs      	r1, r9
 8014532:	0837      	bt      	0x80145a0	// 80145a0 <_etoa.part.0+0xa08>
 8014534:	eb410020 	cmpnei      	r1, 32
 8014538:	0c0c      	bf      	0x8014550	// 8014550 <_etoa.part.0+0x9b8>
 801453a:	c4310023 	addu      	r3, r17, r1
      buf[len++] = '0';
 801453e:	3230      	movi      	r2, 48
 8014540:	2100      	addi      	r1, 1
    while ((len < width) && (len < PRINTF_FTOA_BUFFER_SIZE)) {
 8014542:	6646      	cmpne      	r1, r9
      buf[len++] = '0';
 8014544:	a340      	st.b      	r2, (r3, 0x0)
    while ((len < width) && (len < PRINTF_FTOA_BUFFER_SIZE)) {
 8014546:	0c2c      	bf      	0x801459e	// 801459e <_etoa.part.0+0xa06>
 8014548:	eb410020 	cmpnei      	r1, 32
 801454c:	2300      	addi      	r3, 1
 801454e:	0bf9      	bt      	0x8014540	// 8014540 <_etoa.part.0+0x9a8>
  if (len < PRINTF_FTOA_BUFFER_SIZE) {
 8014550:	6f2f      	mov      	r12, r11
 8014552:	3420      	movi      	r4, 32
 8014554:	0750      	br      	0x80143f4	// 80143f4 <_etoa.part.0+0x85c>
    value = 0 - value;
 8014556:	6cd3      	mov      	r3, r4
 8014558:	6cab      	mov      	r2, r10
 801455a:	3000      	movi      	r0, 0
 801455c:	3100      	movi      	r1, 0
 801455e:	e3ffe501 	bsr      	0x8010f60	// 8010f60 <__subdf3>
    negative = true;
 8014562:	3301      	movi      	r3, 1
    value = 0 - value;
 8014564:	6e83      	mov      	r10, r0
 8014566:	6d07      	mov      	r4, r1
    negative = true;
 8014568:	b874      	st.w      	r3, (r14, 0x50)
 801456a:	e800fcca 	br      	0x8013efe	// 8013efe <_etoa.part.0+0x366>
    while ((len < PRINTF_FTOA_BUFFER_SIZE) && (count-- > 0U)) {
 801456e:	eb410020 	cmpnei      	r1, 32
 8014572:	0f28      	bf      	0x80143c2	// 80143c2 <_etoa.part.0+0x82a>
 8014574:	e90c000e 	bez      	r12, 0x8014590	// 8014590 <_etoa.part.0+0x9f8>
 8014578:	c4310023 	addu      	r3, r17, r1
 801457c:	6304      	addu      	r12, r1
      buf[len++] = '0';
 801457e:	3230      	movi      	r2, 48
 8014580:	2100      	addi      	r1, 1
    while ((len < PRINTF_FTOA_BUFFER_SIZE) && (count-- > 0U)) {
 8014582:	eb410020 	cmpnei      	r1, 32
      buf[len++] = '0';
 8014586:	a340      	st.b      	r2, (r3, 0x0)
    while ((len < PRINTF_FTOA_BUFFER_SIZE) && (count-- > 0U)) {
 8014588:	0f1d      	bf      	0x80143c2	// 80143c2 <_etoa.part.0+0x82a>
 801458a:	6706      	cmpne      	r1, r12
 801458c:	2300      	addi      	r3, 1
 801458e:	0bf9      	bt      	0x8014580	// 8014580 <_etoa.part.0+0x9e8>
      buf[len++] = '.';
 8014590:	332e      	movi      	r3, 46
 8014592:	e5a10000 	addi      	r13, r1, 1
 8014596:	d4310023 	str.b      	r3, (r17, r1 << 0)
 801459a:	e800fd33 	br      	0x8014000	// 8014000 <_etoa.part.0+0x468>
      buf[len++] = '0';
 801459e:	6e47      	mov      	r9, r1
  if (len < PRINTF_FTOA_BUFFER_SIZE) {
 80145a0:	eb410020 	cmpnei      	r1, 32
 80145a4:	0c10      	bf      	0x80145c4	// 80145c4 <_etoa.part.0+0xa2c>
 80145a6:	3301      	movi      	r3, 1
 80145a8:	e800fd59 	br      	0x801405a	// 801405a <_etoa.part.0+0x4c2>
    else if (flags & FLAGS_SPACE) {
 80145ac:	9847      	ld.w      	r2, (r14, 0x1c)
 80145ae:	e4422008 	andi      	r2, r2, 8
 80145b2:	e9020007 	bez      	r2, 0x80145c0	// 80145c0 <_etoa.part.0+0xa28>
      buf[len++] = ' ';
 80145b6:	3220      	movi      	r2, 32
 80145b8:	5982      	addi      	r4, r1, 1
 80145ba:	d4310022 	str.b      	r2, (r17, r1 << 0)
 80145be:	0708      	br      	0x80143ce	// 80143ce <_etoa.part.0+0x836>
    else if (flags & FLAGS_SPACE) {
 80145c0:	6d07      	mov      	r4, r1
 80145c2:	0706      	br      	0x80143ce	// 80143ce <_etoa.part.0+0x836>
  if (len < PRINTF_FTOA_BUFFER_SIZE) {
 80145c4:	6d07      	mov      	r4, r1
 80145c6:	6f2f      	mov      	r12, r11
 80145c8:	0716      	br      	0x80143f4	// 80143f4 <_etoa.part.0+0x85c>
 80145ca:	1048      	lrw      	r2, 0x80169fc	// 80145e8 <_etoa.part.0+0xa50>
 80145cc:	c4684823 	lsli      	r3, r8, 3
 80145d0:	60c8      	addu      	r3, r2
  while ((len < PRINTF_FTOA_BUFFER_SIZE) && (prec > 9U)) {
 80145d2:	6f23      	mov      	r12, r8
 80145d4:	9340      	ld.w      	r2, (r3, 0x0)
 80145d6:	9361      	ld.w      	r3, (r3, 0x4)
 80145d8:	b84b      	st.w      	r2, (r14, 0x2c)
 80145da:	b86d      	st.w      	r3, (r14, 0x34)
 80145dc:	ea0d0000 	movi      	r13, 0
 80145e0:	e62e0053 	addi      	r17, r14, 84
 80145e4:	e800fc9a 	br      	0x8013f18	// 8013f18 <_etoa.part.0+0x380>
 80145e8:	080169fc 	.long	0x080169fc

080145ec <_ftoa>:
{
 80145ec:	ebe00058 	push      	r4-r11, r15, r16-r17
 80145f0:	1434      	subi      	r14, r14, 80
 80145f2:	98df      	ld.w      	r6, (r14, 0x7c)
 80145f4:	99e0      	ld.w      	r7, (r14, 0x80)
 80145f6:	6e8f      	mov      	r10, r3
 80145f8:	9961      	ld.w      	r3, (r14, 0x84)
 80145fa:	6d03      	mov      	r4, r0
 80145fc:	6d47      	mov      	r5, r1
 80145fe:	c4024830 	lsli      	r16, r2, 0
 8014602:	6e4f      	mov      	r9, r3
  if (value != value)
 8014604:	6c9b      	mov      	r2, r6
 8014606:	6cdf      	mov      	r3, r7
 8014608:	6c1b      	mov      	r0, r6
 801460a:	6c5f      	mov      	r1, r7
{
 801460c:	d96e2022 	ld.w      	r11, (r14, 0x88)
 8014610:	da2e2023 	ld.w      	r17, (r14, 0x8c)
  if (value != value)
 8014614:	e3ffe650 	bsr      	0x80112b4	// 80112b4 <__nedf2>
 8014618:	e9200111 	bnez      	r0, 0x801483a	// 801483a <_ftoa+0x24e>
  if (value < -DBL_MAX)
 801461c:	3200      	movi      	r2, 0
 801461e:	ea23fff0 	movih      	r3, 65520
 8014622:	6c5f      	mov      	r1, r7
 8014624:	2a00      	subi      	r2, 1
 8014626:	2b00      	subi      	r3, 1
 8014628:	6c1b      	mov      	r0, r6
 801462a:	e3ffe6a1 	bsr      	0x801136c	// 801136c <__ltdf2>
 801462e:	e9800191 	blz      	r0, 0x8014950	// 8014950 <_ftoa+0x364>
  if (value > DBL_MAX)
 8014632:	3200      	movi      	r2, 0
 8014634:	ea237ff0 	movih      	r3, 32752
 8014638:	2a00      	subi      	r2, 1
 801463a:	2b00      	subi      	r3, 1
 801463c:	6c1b      	mov      	r0, r6
 801463e:	9920      	ld.w      	r1, (r14, 0x80)
 8014640:	e3ffe656 	bsr      	0x80112ec	// 80112ec <__gtdf2>
 8014644:	e94000d3 	bhz      	r0, 0x80147ea	// 80147ea <_ftoa+0x1fe>
  if ((value > PRINTF_MAX_FLOAT) || (value < -PRINTF_MAX_FLOAT)) {
 8014648:	3200      	movi      	r2, 0
 801464a:	026d      	lrw      	r3, 0x41cdcd65	// 8014910 <_ftoa+0x324>
 801464c:	6c1b      	mov      	r0, r6
 801464e:	9920      	ld.w      	r1, (r14, 0x80)
 8014650:	e3ffe64e 	bsr      	0x80112ec	// 80112ec <__gtdf2>
 8014654:	e940016a 	bhz      	r0, 0x8014928	// 8014928 <_ftoa+0x33c>
 8014658:	3200      	movi      	r2, 0
 801465a:	0270      	lrw      	r3, 0xc1cdcd65	// 8014914 <_ftoa+0x328>
 801465c:	6c1b      	mov      	r0, r6
 801465e:	9920      	ld.w      	r1, (r14, 0x80)
 8014660:	e3ffe686 	bsr      	0x801136c	// 801136c <__ltdf2>
 8014664:	e9800162 	blz      	r0, 0x8014928	// 8014928 <_ftoa+0x33c>
  if (value < 0) {
 8014668:	3200      	movi      	r2, 0
 801466a:	6ccb      	mov      	r3, r2
 801466c:	6c1b      	mov      	r0, r6
 801466e:	9920      	ld.w      	r1, (r14, 0x80)
 8014670:	e3ffe67e 	bsr      	0x801136c	// 801136c <__ltdf2>
 8014674:	e9800290 	blz      	r0, 0x8014b94	// 8014b94 <_ftoa+0x5a8>
  bool negative = false;
 8014678:	3300      	movi      	r3, 0
 801467a:	b86b      	st.w      	r3, (r14, 0x2c)
  if (!(flags & FLAGS_PRECISION)) {
 801467c:	e6712400 	andi      	r19, r17, 1024
 8014680:	e933022b 	bnez      	r19, 0x8014ad6	// 8014ad6 <_ftoa+0x4ea>
 8014684:	027a      	lrw      	r3, 0x412e8480	// 8014918 <_ftoa+0x32c>
 8014686:	de6e2005 	st.w      	r19, (r14, 0x14)
 801468a:	b866      	st.w      	r3, (r14, 0x18)
    prec = PRINTF_DEFAULT_FLOAT_PRECISION;
 801468c:	ea080006 	movi      	r8, 6
  int whole = (int)value;
 8014690:	6c5f      	mov      	r1, r7
 8014692:	6c1b      	mov      	r0, r6
 8014694:	de6e200a 	st.w      	r19, (r14, 0x28)
 8014698:	e3ffe6ba 	bsr      	0x801140c	// 801140c <__fixdfsi>
 801469c:	6e43      	mov      	r9, r0
  double tmp = (value - whole) * pow10[prec];
 801469e:	e3ffe683 	bsr      	0x80113a4	// 80113a4 <__floatsidf>
 80146a2:	6c83      	mov      	r2, r0
 80146a4:	6cc7      	mov      	r3, r1
 80146a6:	6c1b      	mov      	r0, r6
 80146a8:	6c5f      	mov      	r1, r7
 80146aa:	e3ffe45b 	bsr      	0x8010f60	// 8010f60 <__subdf3>
 80146ae:	da4e2005 	ld.w      	r18, (r14, 0x14)
 80146b2:	da6e2006 	ld.w      	r19, (r14, 0x18)
 80146b6:	c4124822 	lsli      	r2, r18, 0
 80146ba:	9866      	ld.w      	r3, (r14, 0x18)
 80146bc:	e3ffe470 	bsr      	0x8010f9c	// 8010f9c <__muldf3>
 80146c0:	6f03      	mov      	r12, r0
 80146c2:	6f47      	mov      	r13, r1
  unsigned long frac = (unsigned long)tmp;
 80146c4:	dd8e2007 	st.w      	r12, (r14, 0x1c)
 80146c8:	ddae2008 	st.w      	r13, (r14, 0x20)
 80146cc:	e3ffdf88 	bsr      	0x80105dc	// 80105dc <__fixunsdfsi>
 80146d0:	b809      	st.w      	r0, (r14, 0x24)
  diff = tmp - frac;
 80146d2:	e3ffe6d5 	bsr      	0x801147c	// 801147c <__floatunsidf>
 80146d6:	d98e2007 	ld.w      	r12, (r14, 0x1c)
 80146da:	d9ae2008 	ld.w      	r13, (r14, 0x20)
 80146de:	6c83      	mov      	r2, r0
 80146e0:	6cc7      	mov      	r3, r1
 80146e2:	6c33      	mov      	r0, r12
 80146e4:	6c77      	mov      	r1, r13
 80146e6:	e3ffe43d 	bsr      	0x8010f60	// 8010f60 <__subdf3>
  if (diff > 0.5) {
 80146ea:	3200      	movi      	r2, 0
 80146ec:	ea233fe0 	movih      	r3, 16352
  diff = tmp - frac;
 80146f0:	b807      	st.w      	r0, (r14, 0x1c)
 80146f2:	b828      	st.w      	r1, (r14, 0x20)
  if (diff > 0.5) {
 80146f4:	e3ffe5fc 	bsr      	0x80112ec	// 80112ec <__gtdf2>
 80146f8:	da8e2009 	ld.w      	r20, (r14, 0x24)
 80146fc:	da6e200a 	ld.w      	r19, (r14, 0x28)
 8014700:	e96001cd 	blsz      	r0, 0x8014a9a	// 8014a9a <_ftoa+0x4ae>
    ++frac;
 8014704:	e6940000 	addi      	r20, r20, 1
    if (frac >= pow10[prec]) {
 8014708:	c4144820 	lsli      	r0, r20, 0
 801470c:	de8e2007 	st.w      	r20, (r14, 0x1c)
 8014710:	de6e2009 	st.w      	r19, (r14, 0x24)
 8014714:	e3ffe6b4 	bsr      	0x801147c	// 801147c <__floatunsidf>
 8014718:	da4e2005 	ld.w      	r18, (r14, 0x14)
 801471c:	da6e2006 	ld.w      	r19, (r14, 0x18)
 8014720:	c4134823 	lsli      	r3, r19, 0
 8014724:	c4124822 	lsli      	r2, r18, 0
 8014728:	e3ffe602 	bsr      	0x801132c	// 801132c <__gedf2>
 801472c:	da8e2007 	ld.w      	r20, (r14, 0x1c)
 8014730:	da6e2009 	ld.w      	r19, (r14, 0x24)
 8014734:	e9a0020a 	bhsz      	r0, 0x8014b48	// 8014b48 <_ftoa+0x55c>
  if (prec == 0U) {
 8014738:	e9280148 	bnez      	r8, 0x80149c8	// 80149c8 <_ftoa+0x3dc>
    diff = value - (double)whole;
 801473c:	6c27      	mov      	r0, r9
 801473e:	de6e2005 	st.w      	r19, (r14, 0x14)
 8014742:	e3ffe631 	bsr      	0x80113a4	// 80113a4 <__floatsidf>
 8014746:	6c83      	mov      	r2, r0
 8014748:	6cc7      	mov      	r3, r1
 801474a:	6c1b      	mov      	r0, r6
 801474c:	6c5f      	mov      	r1, r7
 801474e:	e3ffe409 	bsr      	0x8010f60	// 8010f60 <__subdf3>
    if ((!(diff < 0.5) || (diff > 0.5)) && (whole & 1)) {
 8014752:	6ca3      	mov      	r2, r8
 8014754:	ea233fe0 	movih      	r3, 16352
    diff = value - (double)whole;
 8014758:	6d83      	mov      	r6, r0
 801475a:	6dc7      	mov      	r7, r1
    if ((!(diff < 0.5) || (diff > 0.5)) && (whole & 1)) {
 801475c:	e3ffe608 	bsr      	0x801136c	// 801136c <__ltdf2>
 8014760:	da6e2005 	ld.w      	r19, (r14, 0x14)
 8014764:	e98001e6 	blz      	r0, 0x8014b30	// 8014b30 <_ftoa+0x544>
 8014768:	e4692001 	andi      	r3, r9, 1
      ++whole;
 801476c:	3b40      	cmpnei      	r3, 0
 801476e:	c4690c20 	incf      	r3, r9, 0
 8014772:	c4690c41 	inct      	r3, r9, 1
 8014776:	6e4f      	mov      	r9, r3
  while (len < PRINTF_FTOA_BUFFER_SIZE) {
 8014778:	eb530020 	cmpnei      	r19, 32
 801477c:	0d51      	bf      	0x8014a1e	// 8014a1e <_ftoa+0x432>
    buf[len++] = (char)(48 + (whole % 10));
 801477e:	300a      	movi      	r0, 10
 8014780:	c4098043 	divs      	r3, r9, r0
 8014784:	c403842c 	mult      	r12, r3, r0
 8014788:	190c      	addi      	r1, r14, 48
 801478a:	c589008c 	subu      	r12, r9, r12
 801478e:	e58c002f 	addi      	r12, r12, 48
 8014792:	e4530000 	addi      	r2, r19, 1
 8014796:	d661002c 	str.b      	r12, (r1, r19 << 0)
    if (!(whole /= 10)) {
 801479a:	e9030013 	bez      	r3, 0x80147c0	// 80147c0 <_ftoa+0x1d4>
 801479e:	c4410028 	addu      	r8, r1, r2
  while (len < PRINTF_FTOA_BUFFER_SIZE) {
 80147a2:	eb420020 	cmpnei      	r2, 32
 80147a6:	0d3c      	bf      	0x8014a1e	// 8014a1e <_ftoa+0x432>
    buf[len++] = (char)(48 + (whole % 10));
 80147a8:	c4038041 	divs      	r1, r3, r0
 80147ac:	c401842c 	mult      	r12, r1, r0
 80147b0:	60f2      	subu      	r3, r12
 80147b2:	232f      	addi      	r3, 48
 80147b4:	d4088003 	stbi.b      	r3, (r8)
 80147b8:	2200      	addi      	r2, 1
    if (!(whole /= 10)) {
 80147ba:	6cc7      	mov      	r3, r1
 80147bc:	e921fff3 	bnez      	r1, 0x80147a2	// 80147a2 <_ftoa+0x1b6>
  if (!(flags & FLAGS_LEFT) && (flags & FLAGS_ZEROPAD)) {
 80147c0:	e4712003 	andi      	r3, r17, 3
 80147c4:	3b41      	cmpnei      	r3, 1
 80147c6:	0dc9      	bf      	0x8014b58	// 8014b58 <_ftoa+0x56c>
  if (len < PRINTF_FTOA_BUFFER_SIZE) {
 80147c8:	eb420020 	cmpnei      	r2, 32
 80147cc:	e8400227 	bf      	0x8014c1a	// 8014c1a <_ftoa+0x62e>
    if (negative) {
 80147d0:	982b      	ld.w      	r1, (r14, 0x2c)
 80147d2:	e92101a9 	bnez      	r1, 0x8014b24	// 8014b24 <_ftoa+0x538>
    else if (flags & FLAGS_PLUS) {
 80147d6:	e4312004 	andi      	r1, r17, 4
 80147da:	e9010209 	bez      	r1, 0x8014bec	// 8014bec <_ftoa+0x600>
      buf[len++] = '+';  // ignore the space if the '+' exists
 80147de:	190c      	addi      	r1, r14, 48
 80147e0:	302b      	movi      	r0, 43
 80147e2:	5ac2      	addi      	r6, r2, 1
 80147e4:	d4410020 	str.b      	r0, (r1, r2 << 0)
 80147e8:	0520      	br      	0x8014a28	// 8014a28 <_ftoa+0x43c>
    return _out_rev(out, buffer, idx, maxlen, (flags & FLAGS_PLUS) ? "fni+" : "fni", (flags & FLAGS_PLUS) ? 4U : 3U, width, flags);
 80147ea:	e4712004 	andi      	r3, r17, 4
 80147ee:	3b40      	cmpnei      	r3, 0
 80147f0:	124b      	lrw      	r2, 0x80169ec	// 801491c <_ftoa+0x330>
 80147f2:	12ec      	lrw      	r7, 0x80169e4	// 8014920 <_ftoa+0x334>
 80147f4:	c4e20c20 	incf      	r7, r2, 0
 80147f8:	3604      	movi      	r6, 4
 80147fa:	3b40      	cmpnei      	r3, 0
 80147fc:	3303      	movi      	r3, 3
 80147fe:	c4660c40 	inct      	r3, r6, 0
 8014802:	6e0f      	mov      	r8, r3
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 8014804:	e4712003 	andi      	r3, r17, 3
 8014808:	e923002f 	bnez      	r3, 0x8014866	// 8014866 <_ftoa+0x27a>
    for (size_t i = len; i < width; i++) {
 801480c:	66e0      	cmphs      	r8, r11
 801480e:	082c      	bt      	0x8014866	// 8014866 <_ftoa+0x27a>
 8014810:	c4104822 	lsli      	r2, r16, 0
 8014814:	c6080086 	subu      	r6, r8, r16
      out(' ', buffer, idx++, maxlen);
 8014818:	e5220000 	addi      	r9, r2, 1
 801481c:	6ceb      	mov      	r3, r10
 801481e:	6c57      	mov      	r1, r5
 8014820:	3020      	movi      	r0, 32
 8014822:	7bd1      	jsr      	r4
 8014824:	6ca7      	mov      	r2, r9
    for (size_t i = len; i < width; i++) {
 8014826:	5e68      	addu      	r3, r6, r2
 8014828:	66cc      	cmphs      	r3, r11
 801482a:	0ff7      	bf      	0x8014818	// 8014818 <_ftoa+0x22c>
 801482c:	c5700026 	addu      	r6, r16, r11
 8014830:	c5060083 	subu      	r3, r6, r8
 8014834:	b865      	st.w      	r3, (r14, 0x14)
 8014836:	6c8f      	mov      	r2, r3
 8014838:	041b      	br      	0x801486e	// 801486e <_ftoa+0x282>
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 801483a:	e4712003 	andi      	r3, r17, 3
 801483e:	e9230040 	bnez      	r3, 0x80148be	// 80148be <_ftoa+0x2d2>
    for (size_t i = len; i < width; i++) {
 8014842:	3303      	movi      	r3, 3
 8014844:	66cc      	cmphs      	r3, r11
 8014846:	083c      	bt      	0x80148be	// 80148be <_ftoa+0x2d2>
 8014848:	e4cb1002 	subi      	r6, r11, 3
 801484c:	c6060026 	addu      	r6, r6, r16
 8014850:	c4104822 	lsli      	r2, r16, 0
      out(' ', buffer, idx++, maxlen);
 8014854:	5ae2      	addi      	r7, r2, 1
 8014856:	6ceb      	mov      	r3, r10
 8014858:	6c57      	mov      	r1, r5
 801485a:	3020      	movi      	r0, 32
 801485c:	7bd1      	jsr      	r4
    for (size_t i = len; i < width; i++) {
 801485e:	659e      	cmpne      	r7, r6
 8014860:	6c9f      	mov      	r2, r7
 8014862:	0bf9      	bt      	0x8014854	// 8014854 <_ftoa+0x268>
 8014864:	042f      	br      	0x80148c2	// 80148c2 <_ftoa+0x2d6>
 8014866:	de0e2005 	st.w      	r16, (r14, 0x14)
 801486a:	c4104822 	lsli      	r2, r16, 0
 801486e:	e4681000 	subi      	r3, r8, 1
 8014872:	61cc      	addu      	r7, r3
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 8014874:	6e63      	mov      	r9, r8
    out(buf[--len], buffer, idx++, maxlen);
 8014876:	5ac2      	addi      	r6, r2, 1
 8014878:	8700      	ld.b      	r0, (r7, 0x0)
 801487a:	6ceb      	mov      	r3, r10
 801487c:	6c57      	mov      	r1, r5
 801487e:	e5291000 	subi      	r9, r9, 1
 8014882:	7bd1      	jsr      	r4
 8014884:	2f00      	subi      	r7, 1
 8014886:	6c9b      	mov      	r2, r6
  while (len) {
 8014888:	e929fff7 	bnez      	r9, 0x8014876	// 8014876 <_ftoa+0x28a>
  if (flags & FLAGS_LEFT) {
 801488c:	e6312002 	andi      	r17, r17, 2
 8014890:	98c5      	ld.w      	r6, (r14, 0x14)
 8014892:	61a0      	addu      	r6, r8
 8014894:	e9110011 	bez      	r17, 0x80148b6	// 80148b6 <_ftoa+0x2ca>
    while (idx - start_idx < width) {
 8014898:	c6060083 	subu      	r3, r6, r16
 801489c:	66cc      	cmphs      	r3, r11
 801489e:	080c      	bt      	0x80148b6	// 80148b6 <_ftoa+0x2ca>
 80148a0:	6c9b      	mov      	r2, r6
      out(' ', buffer, idx++, maxlen);
 80148a2:	2600      	addi      	r6, 1
 80148a4:	6ceb      	mov      	r3, r10
 80148a6:	6c57      	mov      	r1, r5
 80148a8:	3020      	movi      	r0, 32
 80148aa:	7bd1      	jsr      	r4
    while (idx - start_idx < width) {
 80148ac:	c6060083 	subu      	r3, r6, r16
 80148b0:	66cc      	cmphs      	r3, r11
      out(' ', buffer, idx++, maxlen);
 80148b2:	6c9b      	mov      	r2, r6
    while (idx - start_idx < width) {
 80148b4:	0ff7      	bf      	0x80148a2	// 80148a2 <_ftoa+0x2b6>
}
 80148b6:	6c1b      	mov      	r0, r6
 80148b8:	1414      	addi      	r14, r14, 80
 80148ba:	ebc00058 	pop      	r4-r11, r15, r16-r17
    for (size_t i = len; i < width; i++) {
 80148be:	c4104827 	lsli      	r7, r16, 0
 80148c2:	ea880019 	lrw      	r8, 0x80169f2	// 8014924 <_ftoa+0x338>
 80148c6:	e5270002 	addi      	r9, r7, 3
    out(buf[--len], buffer, idx++, maxlen);
 80148ca:	5fc2      	addi      	r6, r7, 1
 80148cc:	6c9f      	mov      	r2, r7
 80148ce:	d8080000 	ld.b      	r0, (r8, 0x0)
 80148d2:	6ceb      	mov      	r3, r10
 80148d4:	6c57      	mov      	r1, r5
 80148d6:	7bd1      	jsr      	r4
  while (len) {
 80148d8:	665a      	cmpne      	r6, r9
 80148da:	e5081000 	subi      	r8, r8, 1
 80148de:	6ddb      	mov      	r7, r6
 80148e0:	0bf5      	bt      	0x80148ca	// 80148ca <_ftoa+0x2de>
  if (flags & FLAGS_LEFT) {
 80148e2:	e6312002 	andi      	r17, r17, 2
 80148e6:	e911ffe8 	bez      	r17, 0x80148b6	// 80148b6 <_ftoa+0x2ca>
    while (idx - start_idx < width) {
 80148ea:	c6060083 	subu      	r3, r6, r16
 80148ee:	66cc      	cmphs      	r3, r11
 80148f0:	0be3      	bt      	0x80148b6	// 80148b6 <_ftoa+0x2ca>
 80148f2:	6c9b      	mov      	r2, r6
      out(' ', buffer, idx++, maxlen);
 80148f4:	2600      	addi      	r6, 1
 80148f6:	6ceb      	mov      	r3, r10
 80148f8:	6c57      	mov      	r1, r5
 80148fa:	3020      	movi      	r0, 32
 80148fc:	7bd1      	jsr      	r4
    while (idx - start_idx < width) {
 80148fe:	c6060083 	subu      	r3, r6, r16
 8014902:	66cc      	cmphs      	r3, r11
      out(' ', buffer, idx++, maxlen);
 8014904:	6c9b      	mov      	r2, r6
    while (idx - start_idx < width) {
 8014906:	0ff7      	bf      	0x80148f4	// 80148f4 <_ftoa+0x308>
}
 8014908:	6c1b      	mov      	r0, r6
 801490a:	1414      	addi      	r14, r14, 80
 801490c:	ebc00058 	pop      	r4-r11, r15, r16-r17
 8014910:	41cdcd65 	.long	0x41cdcd65
 8014914:	c1cdcd65 	.long	0xc1cdcd65
 8014918:	412e8480 	.long	0x412e8480
 801491c:	080169ec 	.long	0x080169ec
 8014920:	080169e4 	.long	0x080169e4
 8014924:	080169f2 	.long	0x080169f2
 8014928:	b8c0      	st.w      	r6, (r14, 0x0)
 801492a:	de2e2004 	st.w      	r17, (r14, 0x10)
 801492e:	dd6e2003 	st.w      	r11, (r14, 0xc)
 8014932:	dd2e2002 	st.w      	r9, (r14, 0x8)
 8014936:	b8e1      	st.w      	r7, (r14, 0x4)
 8014938:	6ceb      	mov      	r3, r10
 801493a:	c4104822 	lsli      	r2, r16, 0
 801493e:	6c57      	mov      	r1, r5
 8014940:	6c13      	mov      	r0, r4
 8014942:	e3fff92b 	bsr      	0x8013b98	// 8013b98 <_etoa.part.0>
 8014946:	6d83      	mov      	r6, r0
 8014948:	6c1b      	mov      	r0, r6
 801494a:	1414      	addi      	r14, r14, 80
 801494c:	ebc00058 	pop      	r4-r11, r15, r16-r17
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 8014950:	e4712003 	andi      	r3, r17, 3
 8014954:	e9230037 	bnez      	r3, 0x80149c2	// 80149c2 <_ftoa+0x3d6>
    for (size_t i = len; i < width; i++) {
 8014958:	3304      	movi      	r3, 4
 801495a:	66cc      	cmphs      	r3, r11
 801495c:	0833      	bt      	0x80149c2	// 80149c2 <_ftoa+0x3d6>
 801495e:	e4cb1003 	subi      	r6, r11, 4
 8014962:	c6060026 	addu      	r6, r6, r16
 8014966:	c4104822 	lsli      	r2, r16, 0
      out(' ', buffer, idx++, maxlen);
 801496a:	5ae2      	addi      	r7, r2, 1
 801496c:	6ceb      	mov      	r3, r10
 801496e:	6c57      	mov      	r1, r5
 8014970:	3020      	movi      	r0, 32
 8014972:	7bd1      	jsr      	r4
    for (size_t i = len; i < width; i++) {
 8014974:	659e      	cmpne      	r7, r6
 8014976:	6c9f      	mov      	r2, r7
 8014978:	0bf9      	bt      	0x801496a	// 801496a <_ftoa+0x37e>
 801497a:	ea8800b0 	lrw      	r8, 0x80169f7	// 8014c38 <_ftoa+0x64c>
 801497e:	e5270003 	addi      	r9, r7, 4
    out(buf[--len], buffer, idx++, maxlen);
 8014982:	5fc2      	addi      	r6, r7, 1
 8014984:	6c9f      	mov      	r2, r7
 8014986:	d8080000 	ld.b      	r0, (r8, 0x0)
 801498a:	6ceb      	mov      	r3, r10
 801498c:	6c57      	mov      	r1, r5
 801498e:	7bd1      	jsr      	r4
  while (len) {
 8014990:	665a      	cmpne      	r6, r9
 8014992:	e5081000 	subi      	r8, r8, 1
 8014996:	6ddb      	mov      	r7, r6
 8014998:	0bf5      	bt      	0x8014982	// 8014982 <_ftoa+0x396>
  if (flags & FLAGS_LEFT) {
 801499a:	e6312002 	andi      	r17, r17, 2
 801499e:	e911ff8c 	bez      	r17, 0x80148b6	// 80148b6 <_ftoa+0x2ca>
    while (idx - start_idx < width) {
 80149a2:	c6060083 	subu      	r3, r6, r16
 80149a6:	66cc      	cmphs      	r3, r11
 80149a8:	0b87      	bt      	0x80148b6	// 80148b6 <_ftoa+0x2ca>
 80149aa:	6c9b      	mov      	r2, r6
      out(' ', buffer, idx++, maxlen);
 80149ac:	2600      	addi      	r6, 1
 80149ae:	6ceb      	mov      	r3, r10
 80149b0:	6c57      	mov      	r1, r5
 80149b2:	3020      	movi      	r0, 32
 80149b4:	7bd1      	jsr      	r4
    while (idx - start_idx < width) {
 80149b6:	c6060083 	subu      	r3, r6, r16
 80149ba:	66cc      	cmphs      	r3, r11
      out(' ', buffer, idx++, maxlen);
 80149bc:	6c9b      	mov      	r2, r6
    while (idx - start_idx < width) {
 80149be:	0ff7      	bf      	0x80149ac	// 80149ac <_ftoa+0x3c0>
 80149c0:	077b      	br      	0x80148b6	// 80148b6 <_ftoa+0x2ca>
    for (size_t i = len; i < width; i++) {
 80149c2:	c4104827 	lsli      	r7, r16, 0
 80149c6:	07da      	br      	0x801497a	// 801497a <_ftoa+0x38e>
    while (len < PRINTF_FTOA_BUFFER_SIZE) {
 80149c8:	eb530020 	cmpnei      	r19, 32
 80149cc:	0c29      	bf      	0x8014a1e	// 8014a1e <_ftoa+0x432>
      buf[len++] = (char)(48U + (frac % 10U));
 80149ce:	ea0c000a 	movi      	r12, 10
 80149d2:	c5948023 	divu      	r3, r20, r12
 80149d6:	c5838420 	mult      	r0, r3, r12
 80149da:	190c      	addi      	r1, r14, 48
 80149dc:	c4140094 	subu      	r20, r20, r0
 80149e0:	e694002f 	addi      	r20, r20, 48
      --count;
 80149e4:	e6481000 	subi      	r18, r8, 1
      buf[len++] = (char)(48U + (frac % 10U));
 80149e8:	e4530000 	addi      	r2, r19, 1
 80149ec:	d6610034 	str.b      	r20, (r1, r19 << 0)
      if (!(frac /= 10U)) {
 80149f0:	e90300de 	bez      	r3, 0x8014bac	// 8014bac <_ftoa+0x5c0>
 80149f4:	c441002d 	addu      	r13, r1, r2
 80149f8:	0410      	br      	0x8014a18	// 8014a18 <_ftoa+0x42c>
      buf[len++] = (char)(48U + (frac % 10U));
 80149fa:	c5838020 	divu      	r0, r3, r12
 80149fe:	c5808433 	mult      	r19, r0, r12
 8014a02:	c6630083 	subu      	r3, r3, r19
 8014a06:	232f      	addi      	r3, 48
 8014a08:	d40d8003 	stbi.b      	r3, (r13)
      --count;
 8014a0c:	e6521000 	subi      	r18, r18, 1
      buf[len++] = (char)(48U + (frac % 10U));
 8014a10:	2200      	addi      	r2, 1
      if (!(frac /= 10U)) {
 8014a12:	6cc3      	mov      	r3, r0
 8014a14:	e90000cc 	bez      	r0, 0x8014bac	// 8014bac <_ftoa+0x5c0>
    while (len < PRINTF_FTOA_BUFFER_SIZE) {
 8014a18:	eb420020 	cmpnei      	r2, 32
 8014a1c:	0bef      	bt      	0x80149fa	// 80149fa <_ftoa+0x40e>
  if (!(flags & FLAGS_LEFT) && (flags & FLAGS_ZEROPAD)) {
 8014a1e:	e4712003 	andi      	r3, r17, 3
 8014a22:	3b41      	cmpnei      	r3, 1
 8014a24:	0c99      	bf      	0x8014b56	// 8014b56 <_ftoa+0x56a>
 8014a26:	3620      	movi      	r6, 32
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 8014a28:	e923007b 	bnez      	r3, 0x8014b1e	// 8014b1e <_ftoa+0x532>
    for (size_t i = len; i < width; i++) {
 8014a2c:	66d8      	cmphs      	r6, r11
 8014a2e:	08ee      	bt      	0x8014c0a	// 8014c0a <_ftoa+0x61e>
 8014a30:	c5700028 	addu      	r8, r16, r11
 8014a34:	621a      	subu      	r8, r6
 8014a36:	c4104822 	lsli      	r2, r16, 0
      out(' ', buffer, idx++, maxlen);
 8014a3a:	5ae2      	addi      	r7, r2, 1
 8014a3c:	6ceb      	mov      	r3, r10
 8014a3e:	6c57      	mov      	r1, r5
 8014a40:	3020      	movi      	r0, 32
 8014a42:	7bd1      	jsr      	r4
    for (size_t i = len; i < width; i++) {
 8014a44:	661e      	cmpne      	r7, r8
 8014a46:	6c9f      	mov      	r2, r7
 8014a48:	0bf9      	bt      	0x8014a3a	// 8014a3a <_ftoa+0x44e>
  while (len) {
 8014a4a:	e90600db 	bez      	r6, 0x8014c00	// 8014c00 <_ftoa+0x614>
 8014a4e:	190c      	addi      	r1, r14, 48
 8014a50:	e5061000 	subi      	r8, r6, 1
 8014a54:	6204      	addu      	r8, r1
 8014a56:	619c      	addu      	r6, r7
    out(buf[--len], buffer, idx++, maxlen);
 8014a58:	e5270000 	addi      	r9, r7, 1
 8014a5c:	6c9f      	mov      	r2, r7
 8014a5e:	d8080000 	ld.b      	r0, (r8, 0x0)
 8014a62:	6ceb      	mov      	r3, r10
 8014a64:	6c57      	mov      	r1, r5
 8014a66:	7bd1      	jsr      	r4
  while (len) {
 8014a68:	65a6      	cmpne      	r9, r6
 8014a6a:	e5081000 	subi      	r8, r8, 1
 8014a6e:	6de7      	mov      	r7, r9
 8014a70:	0bf4      	bt      	0x8014a58	// 8014a58 <_ftoa+0x46c>
  if (flags & FLAGS_LEFT) {
 8014a72:	e6312002 	andi      	r17, r17, 2
 8014a76:	e911ff20 	bez      	r17, 0x80148b6	// 80148b6 <_ftoa+0x2ca>
    while (idx - start_idx < width) {
 8014a7a:	c6060083 	subu      	r3, r6, r16
 8014a7e:	66cc      	cmphs      	r3, r11
 8014a80:	0b1b      	bt      	0x80148b6	// 80148b6 <_ftoa+0x2ca>
 8014a82:	6c9b      	mov      	r2, r6
      out(' ', buffer, idx++, maxlen);
 8014a84:	2600      	addi      	r6, 1
 8014a86:	6ceb      	mov      	r3, r10
 8014a88:	6c57      	mov      	r1, r5
 8014a8a:	3020      	movi      	r0, 32
 8014a8c:	7bd1      	jsr      	r4
    while (idx - start_idx < width) {
 8014a8e:	c6060083 	subu      	r3, r6, r16
 8014a92:	66cc      	cmphs      	r3, r11
      out(' ', buffer, idx++, maxlen);
 8014a94:	6c9b      	mov      	r2, r6
    while (idx - start_idx < width) {
 8014a96:	0ff7      	bf      	0x8014a84	// 8014a84 <_ftoa+0x498>
 8014a98:	070f      	br      	0x80148b6	// 80148b6 <_ftoa+0x2ca>
  else if (diff < 0.5) {
 8014a9a:	d98e2007 	ld.w      	r12, (r14, 0x1c)
 8014a9e:	d9ae2008 	ld.w      	r13, (r14, 0x20)
 8014aa2:	3200      	movi      	r2, 0
 8014aa4:	ea233fe0 	movih      	r3, 16352
 8014aa8:	6c33      	mov      	r0, r12
 8014aaa:	6c77      	mov      	r1, r13
 8014aac:	de8e2009 	st.w      	r20, (r14, 0x24)
 8014ab0:	de6e2005 	st.w      	r19, (r14, 0x14)
 8014ab4:	e3ffe45c 	bsr      	0x801136c	// 801136c <__ltdf2>
 8014ab8:	da6e2005 	ld.w      	r19, (r14, 0x14)
 8014abc:	da8e2009 	ld.w      	r20, (r14, 0x24)
 8014ac0:	e980fe3c 	blz      	r0, 0x8014738	// 8014738 <_ftoa+0x14c>
  else if ((frac == 0U) || (frac & 1U)) {
 8014ac4:	e9140006 	bez      	r20, 0x8014ad0	// 8014ad0 <_ftoa+0x4e4>
 8014ac8:	e4742001 	andi      	r3, r20, 1
 8014acc:	e903fe36 	bez      	r3, 0x8014738	// 8014738 <_ftoa+0x14c>
    ++frac;
 8014ad0:	e6940000 	addi      	r20, r20, 1
 8014ad4:	0632      	br      	0x8014738	// 8014738 <_ftoa+0x14c>
  while ((len < PRINTF_FTOA_BUFFER_SIZE) && (prec > 9U)) {
 8014ad6:	6ce7      	mov      	r3, r9
 8014ad8:	3b09      	cmphsi      	r3, 10
 8014ada:	0ca2      	bf      	0x8014c1e	// 8014c1e <_ftoa+0x632>
    buf[len++] = '0';
 8014adc:	3030      	movi      	r0, 48
 8014ade:	dc0e0030 	st.b      	r0, (r14, 0x30)
    prec--;
 8014ae2:	e5091000 	subi      	r8, r9, 1
 8014ae6:	e44e0030 	addi      	r2, r14, 49
 8014aea:	e4291008 	subi      	r1, r9, 9
 8014aee:	ea130001 	movi      	r19, 1
    buf[len++] = '0';
 8014af2:	331f      	movi      	r3, 31
  while ((len < PRINTF_FTOA_BUFFER_SIZE) && (prec > 9U)) {
 8014af4:	c6610480 	cmpne      	r1, r19
 8014af8:	0c09      	bf      	0x8014b0a	// 8014b0a <_ftoa+0x51e>
    buf[len++] = '0';
 8014afa:	e6730000 	addi      	r19, r19, 1
 8014afe:	d4028000 	stbi.b      	r0, (r2)
    prec--;
 8014b02:	e5081000 	subi      	r8, r8, 1
  while ((len < PRINTF_FTOA_BUFFER_SIZE) && (prec > 9U)) {
 8014b06:	e823fff7 	bnezad      	r3, 0x8014af4	// 8014af4 <_ftoa+0x508>
 8014b0a:	124d      	lrw      	r2, 0x80169fc	// 8014c3c <_ftoa+0x650>
 8014b0c:	c4684823 	lsli      	r3, r8, 3
 8014b10:	60c8      	addu      	r3, r2
 8014b12:	9340      	ld.w      	r2, (r3, 0x0)
 8014b14:	9361      	ld.w      	r3, (r3, 0x4)
 8014b16:	b845      	st.w      	r2, (r14, 0x14)
 8014b18:	b866      	st.w      	r3, (r14, 0x18)
 8014b1a:	e800fdbb 	br      	0x8014690	// 8014690 <_ftoa+0xa4>
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 8014b1e:	c4104827 	lsli      	r7, r16, 0
 8014b22:	0796      	br      	0x8014a4e	// 8014a4e <_ftoa+0x462>
      buf[len++] = '-';
 8014b24:	190c      	addi      	r1, r14, 48
 8014b26:	302d      	movi      	r0, 45
 8014b28:	5ac2      	addi      	r6, r2, 1
 8014b2a:	d4410020 	str.b      	r0, (r1, r2 << 0)
 8014b2e:	077d      	br      	0x8014a28	// 8014a28 <_ftoa+0x43c>
    if ((!(diff < 0.5) || (diff > 0.5)) && (whole & 1)) {
 8014b30:	6ca3      	mov      	r2, r8
 8014b32:	ea233fe0 	movih      	r3, 16352
 8014b36:	6c1b      	mov      	r0, r6
 8014b38:	6c5f      	mov      	r1, r7
 8014b3a:	e3ffe3d9 	bsr      	0x80112ec	// 80112ec <__gtdf2>
 8014b3e:	da6e2005 	ld.w      	r19, (r14, 0x14)
 8014b42:	e960fe1b 	blsz      	r0, 0x8014778	// 8014778 <_ftoa+0x18c>
 8014b46:	0611      	br      	0x8014768	// 8014768 <_ftoa+0x17c>
      ++whole;
 8014b48:	6ce7      	mov      	r3, r9
 8014b4a:	2300      	addi      	r3, 1
 8014b4c:	6e4f      	mov      	r9, r3
      frac = 0;
 8014b4e:	ea140000 	movi      	r20, 0
 8014b52:	e800fdf3 	br      	0x8014738	// 8014738 <_ftoa+0x14c>
  if (!(flags & FLAGS_LEFT) && (flags & FLAGS_ZEROPAD)) {
 8014b56:	3220      	movi      	r2, 32
    if (width && (negative || (flags & (FLAGS_PLUS | FLAGS_SPACE)))) {
 8014b58:	e90b0044 	bez      	r11, 0x8014be0	// 8014be0 <_ftoa+0x5f4>
 8014b5c:	986b      	ld.w      	r3, (r14, 0x2c)
 8014b5e:	e9230006 	bnez      	r3, 0x8014b6a	// 8014b6a <_ftoa+0x57e>
 8014b62:	e471200c 	andi      	r3, r17, 12
 8014b66:	e9030004 	bez      	r3, 0x8014b6e	// 8014b6e <_ftoa+0x582>
      width--;
 8014b6a:	e56b1000 	subi      	r11, r11, 1
    while ((len < width) && (len < PRINTF_FTOA_BUFFER_SIZE)) {
 8014b6e:	66c8      	cmphs      	r2, r11
 8014b70:	0838      	bt      	0x8014be0	// 8014be0 <_ftoa+0x5f4>
 8014b72:	3a1f      	cmphsi      	r2, 32
 8014b74:	084e      	bt      	0x8014c10	// 8014c10 <_ftoa+0x624>
 8014b76:	190c      	addi      	r1, r14, 48
 8014b78:	5968      	addu      	r3, r1, r2
 8014b7a:	6d8b      	mov      	r6, r2
      buf[len++] = '0';
 8014b7c:	3230      	movi      	r2, 48
 8014b7e:	2600      	addi      	r6, 1
    while ((len < width) && (len < PRINTF_FTOA_BUFFER_SIZE)) {
 8014b80:	66da      	cmpne      	r6, r11
      buf[len++] = '0';
 8014b82:	a340      	st.b      	r2, (r3, 0x0)
    while ((len < width) && (len < PRINTF_FTOA_BUFFER_SIZE)) {
 8014b84:	0c2d      	bf      	0x8014bde	// 8014bde <_ftoa+0x5f2>
 8014b86:	eb460020 	cmpnei      	r6, 32
 8014b8a:	2300      	addi      	r3, 1
 8014b8c:	0bf9      	bt      	0x8014b7e	// 8014b7e <_ftoa+0x592>
 8014b8e:	c4104827 	lsli      	r7, r16, 0
 8014b92:	075f      	br      	0x8014a50	// 8014a50 <_ftoa+0x464>
    value = 0 - value;
 8014b94:	6c9b      	mov      	r2, r6
 8014b96:	9960      	ld.w      	r3, (r14, 0x80)
 8014b98:	3000      	movi      	r0, 0
 8014b9a:	3100      	movi      	r1, 0
 8014b9c:	e3ffe1e2 	bsr      	0x8010f60	// 8010f60 <__subdf3>
    negative = true;
 8014ba0:	3301      	movi      	r3, 1
    value = 0 - value;
 8014ba2:	6d83      	mov      	r6, r0
 8014ba4:	6dc7      	mov      	r7, r1
    negative = true;
 8014ba6:	b86b      	st.w      	r3, (r14, 0x2c)
 8014ba8:	e800fd6a 	br      	0x801467c	// 801467c <_ftoa+0x90>
    while ((len < PRINTF_FTOA_BUFFER_SIZE) && (count-- > 0U)) {
 8014bac:	eb420020 	cmpnei      	r2, 32
 8014bb0:	0f37      	bf      	0x8014a1e	// 8014a1e <_ftoa+0x432>
 8014bb2:	e912000f 	bez      	r18, 0x8014bd0	// 8014bd0 <_ftoa+0x5e4>
 8014bb6:	5968      	addu      	r3, r1, r2
 8014bb8:	c4520032 	addu      	r18, r18, r2
      buf[len++] = '0';
 8014bbc:	3030      	movi      	r0, 48
 8014bbe:	2200      	addi      	r2, 1
    while ((len < PRINTF_FTOA_BUFFER_SIZE) && (count-- > 0U)) {
 8014bc0:	eb420020 	cmpnei      	r2, 32
      buf[len++] = '0';
 8014bc4:	a300      	st.b      	r0, (r3, 0x0)
    while ((len < PRINTF_FTOA_BUFFER_SIZE) && (count-- > 0U)) {
 8014bc6:	0f2c      	bf      	0x8014a1e	// 8014a1e <_ftoa+0x432>
 8014bc8:	c6420480 	cmpne      	r2, r18
 8014bcc:	2300      	addi      	r3, 1
 8014bce:	0bf8      	bt      	0x8014bbe	// 8014bbe <_ftoa+0x5d2>
      buf[len++] = '.';
 8014bd0:	332e      	movi      	r3, 46
 8014bd2:	e6620000 	addi      	r19, r2, 1
 8014bd6:	d4410023 	str.b      	r3, (r1, r2 << 0)
 8014bda:	e800fdcf 	br      	0x8014778	// 8014778 <_ftoa+0x18c>
      buf[len++] = '0';
 8014bde:	6caf      	mov      	r2, r11
  if (len < PRINTF_FTOA_BUFFER_SIZE) {
 8014be0:	331f      	movi      	r3, 31
 8014be2:	648c      	cmphs      	r3, r2
 8014be4:	0c16      	bf      	0x8014c10	// 8014c10 <_ftoa+0x624>
 8014be6:	3301      	movi      	r3, 1
 8014be8:	e800fdf4 	br      	0x80147d0	// 80147d0 <_ftoa+0x1e4>
    else if (flags & FLAGS_SPACE) {
 8014bec:	e4312008 	andi      	r1, r17, 8
 8014bf0:	e901000a 	bez      	r1, 0x8014c04	// 8014c04 <_ftoa+0x618>
      buf[len++] = ' ';
 8014bf4:	190c      	addi      	r1, r14, 48
 8014bf6:	3020      	movi      	r0, 32
 8014bf8:	5ac2      	addi      	r6, r2, 1
 8014bfa:	d4410020 	str.b      	r0, (r1, r2 << 0)
 8014bfe:	0715      	br      	0x8014a28	// 8014a28 <_ftoa+0x43c>
  while (len) {
 8014c00:	6d9f      	mov      	r6, r7
 8014c02:	0738      	br      	0x8014a72	// 8014a72 <_ftoa+0x486>
  if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
 8014c04:	6d8b      	mov      	r6, r2
 8014c06:	e903ff13 	bez      	r3, 0x8014a2c	// 8014a2c <_ftoa+0x440>
 8014c0a:	c4104827 	lsli      	r7, r16, 0
 8014c0e:	071e      	br      	0x8014a4a	// 8014a4a <_ftoa+0x45e>
    while ((len < width) && (len < PRINTF_FTOA_BUFFER_SIZE)) {
 8014c10:	6d8b      	mov      	r6, r2
 8014c12:	c4104827 	lsli      	r7, r16, 0
 8014c16:	190c      	addi      	r1, r14, 48
 8014c18:	071c      	br      	0x8014a50	// 8014a50 <_ftoa+0x464>
  if (len < PRINTF_FTOA_BUFFER_SIZE) {
 8014c1a:	6d8b      	mov      	r6, r2
 8014c1c:	0706      	br      	0x8014a28	// 8014a28 <_ftoa+0x43c>
 8014c1e:	1048      	lrw      	r2, 0x80169fc	// 8014c3c <_ftoa+0x650>
 8014c20:	4363      	lsli      	r3, r3, 3
 8014c22:	60c8      	addu      	r3, r2
  while ((len < PRINTF_FTOA_BUFFER_SIZE) && (prec > 9U)) {
 8014c24:	6e27      	mov      	r8, r9
 8014c26:	9340      	ld.w      	r2, (r3, 0x0)
 8014c28:	9361      	ld.w      	r3, (r3, 0x4)
 8014c2a:	b845      	st.w      	r2, (r14, 0x14)
 8014c2c:	b866      	st.w      	r3, (r14, 0x18)
 8014c2e:	ea130000 	movi      	r19, 0
 8014c32:	e800fd2f 	br      	0x8014690	// 8014690 <_ftoa+0xa4>
 8014c36:	0000      	.short	0x0000
 8014c38:	080169f7 	.long	0x080169f7
 8014c3c:	080169fc 	.long	0x080169fc

08014c40 <_vsnprintf>:
#endif  // PRINTF_SUPPORT_FLOAT


// internal vsnprintf
static int _vsnprintf(out_fct_type out, char* buffer, const size_t maxlen, const char* format, va_list va)
{
 8014c40:	ebe00058 	push      	r4-r11, r15, r16-r17
 8014c44:	1439      	subi      	r14, r14, 100
  unsigned int flags, width, precision, n;
  size_t idx = 0U;

  if (!buffer) {
    // use null output function
    out = _out_null;
 8014c46:	3940      	cmpnei      	r1, 0
 8014c48:	10bf      	lrw      	r5, 0x8013988	// 8014cc4 <_vsnprintf+0x84>
{
 8014c4a:	6dc7      	mov      	r7, r1
 8014c4c:	6d8b      	mov      	r6, r2
 8014c4e:	6d0f      	mov      	r4, r3
 8014c50:	d96e2024 	ld.w      	r11, (r14, 0x90)
    out = _out_null;
 8014c54:	c4a00c40 	inct      	r5, r0, 0
        format++;
        break;
      }

      case '%' :
        out('%', buffer, idx++, maxlen);
 8014c58:	ea110000 	movi      	r17, 0
      switch (*format) {
 8014c5c:	ea88001b 	lrw      	r8, 0x8016804	// 8014cc8 <_vsnprintf+0x88>
 8014c60:	e54e003b 	addi      	r10, r14, 60
  while (*format)
 8014c64:	8400      	ld.b      	r0, (r4, 0x0)
 8014c66:	e9000012 	bez      	r0, 0x8014c8a	// 8014c8a <_vsnprintf+0x4a>
    if (*format != '%') {
 8014c6a:	eb400025 	cmpnei      	r0, 37
 8014c6e:	0c1c      	bf      	0x8014ca6	// 8014ca6 <_vsnprintf+0x66>
      format++;
 8014c70:	2400      	addi      	r4, 1
      out(*format, buffer, idx++, maxlen);
 8014c72:	c4114822 	lsli      	r2, r17, 0
 8014c76:	6cdb      	mov      	r3, r6
 8014c78:	6c5f      	mov      	r1, r7
 8014c7a:	7bd5      	jsr      	r5
  while (*format)
 8014c7c:	8400      	ld.b      	r0, (r4, 0x0)
      out(*format, buffer, idx++, maxlen);
 8014c7e:	e5310000 	addi      	r9, r17, 1
 8014c82:	c4094831 	lsli      	r17, r9, 0
  while (*format)
 8014c86:	e920fff2 	bnez      	r0, 0x8014c6a	// 8014c6a <_vsnprintf+0x2a>
        break;
    }
  }

  // termination
  out((char)0, buffer, idx < maxlen ? idx : maxlen - 1U, maxlen);
 8014c8a:	c4d10420 	cmphs      	r17, r6
 8014c8e:	e840068f 	bf      	0x80159ac	// 80159ac <_vsnprintf+0xd6c>
 8014c92:	5e43      	subi      	r2, r6, 1
 8014c94:	6cdb      	mov      	r3, r6
 8014c96:	6c5f      	mov      	r1, r7
 8014c98:	3000      	movi      	r0, 0
 8014c9a:	7bd5      	jsr      	r5

  // return written chars without terminating \0
  return (int)idx;
}
 8014c9c:	c4114820 	lsli      	r0, r17, 0
 8014ca0:	1419      	addi      	r14, r14, 100
 8014ca2:	ebc00058 	pop      	r4-r11, r15, r16-r17
      format++;
 8014ca6:	5c42      	addi      	r2, r4, 1
    flags = 0U;
 8014ca8:	ea120000 	movi      	r18, 0
      switch (*format) {
 8014cac:	8200      	ld.b      	r0, (r2, 0x0)
 8014cae:	e460101f 	subi      	r3, r0, 32
 8014cb2:	74cc      	zextb      	r3, r3
 8014cb4:	3b10      	cmphsi      	r3, 17
 8014cb6:	c4024830 	lsli      	r16, r2, 0
 8014cba:	081d      	bt      	0x8014cf4	// 8014cf4 <_vsnprintf+0xb4>
 8014cbc:	d0680883 	ldr.w      	r3, (r8, r3 << 2)
 8014cc0:	780c      	jmp      	r3
 8014cc2:	0000      	.short	0x0000
 8014cc4:	08013988 	.long	0x08013988
 8014cc8:	08016804 	.long	0x08016804
        case '0': flags |= FLAGS_ZEROPAD; format++; n = 1U; break;
 8014ccc:	ee520001 	ori      	r18, r18, 1
 8014cd0:	2200      	addi      	r2, 1
 8014cd2:	07ed      	br      	0x8014cac	// 8014cac <_vsnprintf+0x6c>
        case ' ': flags |= FLAGS_SPACE;   format++; n = 1U; break;
 8014cd4:	ee520008 	ori      	r18, r18, 8
 8014cd8:	2200      	addi      	r2, 1
 8014cda:	07e9      	br      	0x8014cac	// 8014cac <_vsnprintf+0x6c>
        case '#': flags |= FLAGS_HASH;    format++; n = 1U; break;
 8014cdc:	ee520010 	ori      	r18, r18, 16
 8014ce0:	2200      	addi      	r2, 1
 8014ce2:	07e5      	br      	0x8014cac	// 8014cac <_vsnprintf+0x6c>
        case '+': flags |= FLAGS_PLUS;    format++; n = 1U; break;
 8014ce4:	ee520004 	ori      	r18, r18, 4
 8014ce8:	2200      	addi      	r2, 1
 8014cea:	07e1      	br      	0x8014cac	// 8014cac <_vsnprintf+0x6c>
        case '-': flags |= FLAGS_LEFT;    format++; n = 1U; break;
 8014cec:	ee520002 	ori      	r18, r18, 2
 8014cf0:	2200      	addi      	r2, 1
 8014cf2:	07dd      	br      	0x8014cac	// 8014cac <_vsnprintf+0x6c>
  return (ch >= '0') && (ch <= '9');
 8014cf4:	e460102f 	subi      	r3, r0, 48
    if (_is_digit(*format)) {
 8014cf8:	74cc      	zextb      	r3, r3
 8014cfa:	3b09      	cmphsi      	r3, 10
 8014cfc:	0c56      	bf      	0x8014da8	// 8014da8 <_vsnprintf+0x168>
    else if (*format == '*') {
 8014cfe:	eb40002a 	cmpnei      	r0, 42
 8014d02:	e8400659 	bf      	0x80159b4	// 80159b4 <_vsnprintf+0xd74>
    width = 0U;
 8014d06:	3400      	movi      	r4, 0
    if (*format == '.') {
 8014d08:	eb40002e 	cmpnei      	r0, 46
 8014d0c:	0c61      	bf      	0x8014dce	// 8014dce <_vsnprintf+0x18e>
    precision = 0U;
 8014d0e:	ea090000 	movi      	r9, 0
    switch (*format) {
 8014d12:	e4601067 	subi      	r3, r0, 104
 8014d16:	74cc      	zextb      	r3, r3
 8014d18:	3b12      	cmphsi      	r3, 19
 8014d1a:	080d      	bt      	0x8014d34	// 8014d34 <_vsnprintf+0xf4>
 8014d1c:	1042      	lrw      	r2, 0x8016848	// 8014d24 <_vsnprintf+0xe4>
 8014d1e:	d0620883 	ldr.w      	r3, (r2, r3 << 2)
 8014d22:	780c      	jmp      	r3
 8014d24:	08016848 	.long	0x08016848
 8014d28:	d8100001 	ld.b      	r0, (r16, 0x1)
        flags |= (sizeof(size_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG);
 8014d2c:	ee520100 	ori      	r18, r18, 256
        format++;
 8014d30:	e6100000 	addi      	r16, r16, 1
    switch (*format) {
 8014d34:	e4601024 	subi      	r3, r0, 37
 8014d38:	74cc      	zextb      	r3, r3
 8014d3a:	eb030053 	cmphsi      	r3, 84
 8014d3e:	0817      	bt      	0x8014d6c	// 8014d6c <_vsnprintf+0x12c>
 8014d40:	1042      	lrw      	r2, 0x8016894	// 8014d48 <_vsnprintf+0x108>
 8014d42:	d0620883 	ldr.w      	r3, (r2, r3 << 2)
 8014d46:	780c      	jmp      	r3
 8014d48:	08016894 	.long	0x08016894
        if (*format == 'h') {
 8014d4c:	d8100001 	ld.b      	r0, (r16, 0x1)
 8014d50:	eb400068 	cmpnei      	r0, 104
 8014d54:	e840066e 	bf      	0x8015a30	// 8015a30 <_vsnprintf+0xdf0>
    switch (*format) {
 8014d58:	e4601024 	subi      	r3, r0, 37
 8014d5c:	74cc      	zextb      	r3, r3
 8014d5e:	eb030053 	cmphsi      	r3, 84
        flags |= FLAGS_SHORT;
 8014d62:	ee520080 	ori      	r18, r18, 128
        format++;
 8014d66:	e6100000 	addi      	r16, r16, 1
    switch (*format) {
 8014d6a:	0feb      	bf      	0x8014d40	// 8014d40 <_vsnprintf+0x100>
        out(*format, buffer, idx++, maxlen);
 8014d6c:	c4114822 	lsli      	r2, r17, 0
 8014d70:	e5310000 	addi      	r9, r17, 1
 8014d74:	6cdb      	mov      	r3, r6
 8014d76:	6c5f      	mov      	r1, r7
 8014d78:	7bd5      	jsr      	r5
        format++;
 8014d7a:	e4900000 	addi      	r4, r16, 1
        out(*format, buffer, idx++, maxlen);
 8014d7e:	c4094831 	lsli      	r17, r9, 0
        break;
 8014d82:	0771      	br      	0x8014c64	// 8014c64 <_vsnprintf+0x24>
        if (*format == 'l') {
 8014d84:	d8100001 	ld.b      	r0, (r16, 0x1)
 8014d88:	eb40006c 	cmpnei      	r0, 108
 8014d8c:	e840064a 	bf      	0x8015a20	// 8015a20 <_vsnprintf+0xde0>
        flags |= FLAGS_LONG;
 8014d90:	ee520100 	ori      	r18, r18, 256
        format++;
 8014d94:	e6100000 	addi      	r16, r16, 1
 8014d98:	07ce      	br      	0x8014d34	// 8014d34 <_vsnprintf+0xf4>
 8014d9a:	d8100001 	ld.b      	r0, (r16, 0x1)
        flags |= (sizeof(intmax_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG);
 8014d9e:	ee520200 	ori      	r18, r18, 512
        format++;
 8014da2:	e6100000 	addi      	r16, r16, 1
        break;
 8014da6:	07c7      	br      	0x8014d34	// 8014d34 <_vsnprintf+0xf4>
 8014da8:	3400      	movi      	r4, 0
    i = i * 10U + (unsigned int)(*((*str)++) - '0');
 8014daa:	310a      	movi      	r1, 10
  while (_is_digit(**str)) {
 8014dac:	3209      	movi      	r2, 9
    i = i * 10U + (unsigned int)(*((*str)++) - '0');
 8014dae:	e6100000 	addi      	r16, r16, 1
 8014db2:	f8248440 	mula.32.l      	r0, r4, r1
 8014db6:	e480102f 	subi      	r4, r0, 48
  while (_is_digit(**str)) {
 8014dba:	d8100000 	ld.b      	r0, (r16, 0x0)
  return (ch >= '0') && (ch <= '9');
 8014dbe:	e460102f 	subi      	r3, r0, 48
  while (_is_digit(**str)) {
 8014dc2:	74cc      	zextb      	r3, r3
 8014dc4:	64c8      	cmphs      	r2, r3
 8014dc6:	0bf4      	bt      	0x8014dae	// 8014dae <_vsnprintf+0x16e>
    if (*format == '.') {
 8014dc8:	eb40002e 	cmpnei      	r0, 46
 8014dcc:	0ba1      	bt      	0x8014d0e	// 8014d0e <_vsnprintf+0xce>
      if (_is_digit(*format)) {
 8014dce:	d8100001 	ld.b      	r0, (r16, 0x1)
  return (ch >= '0') && (ch <= '9');
 8014dd2:	e460102f 	subi      	r3, r0, 48
      if (_is_digit(*format)) {
 8014dd6:	74cc      	zextb      	r3, r3
 8014dd8:	3b09      	cmphsi      	r3, 10
      flags |= FLAGS_PRECISION;
 8014dda:	ee520400 	ori      	r18, r18, 1024
      format++;
 8014dde:	e4500000 	addi      	r2, r16, 1
      if (_is_digit(*format)) {
 8014de2:	0815      	bt      	0x8014e0c	// 8014e0c <_vsnprintf+0x1cc>
 8014de4:	c4024830 	lsli      	r16, r2, 0
 8014de8:	ea090000 	movi      	r9, 0
    i = i * 10U + (unsigned int)(*((*str)++) - '0');
 8014dec:	310a      	movi      	r1, 10
  while (_is_digit(**str)) {
 8014dee:	3209      	movi      	r2, 9
    i = i * 10U + (unsigned int)(*((*str)++) - '0');
 8014df0:	e6100000 	addi      	r16, r16, 1
 8014df4:	f8298440 	mula.32.l      	r0, r9, r1
 8014df8:	e520102f 	subi      	r9, r0, 48
  while (_is_digit(**str)) {
 8014dfc:	d8100000 	ld.b      	r0, (r16, 0x0)
  return (ch >= '0') && (ch <= '9');
 8014e00:	e460102f 	subi      	r3, r0, 48
  while (_is_digit(**str)) {
 8014e04:	74cc      	zextb      	r3, r3
 8014e06:	64c8      	cmphs      	r2, r3
 8014e08:	0bf4      	bt      	0x8014df0	// 8014df0 <_vsnprintf+0x1b0>
 8014e0a:	0784      	br      	0x8014d12	// 8014d12 <_vsnprintf+0xd2>
      else if (*format == '*') {
 8014e0c:	eb40002a 	cmpnei      	r0, 42
 8014e10:	e84007d1 	bf      	0x8015db2	// 8015db2 <_vsnprintf+0x1172>
      format++;
 8014e14:	c4024830 	lsli      	r16, r2, 0
 8014e18:	077b      	br      	0x8014d0e	// 8014d0e <_vsnprintf+0xce>
        uint32_t ipv4 = va_arg(va, uint32_t);
 8014e1a:	e46b0003 	addi      	r3, r11, 4
 8014e1e:	d84b2000 	ld.w      	r2, (r11, 0x0)
 8014e22:	b868      	st.w      	r3, (r14, 0x20)
            h = bit / 100;
 8014e24:	ea130064 	movi      	r19, 100
            bit = (*inuint >> (8 * i)) & 0xff;
 8014e28:	74c8      	zextb      	r3, r2
            h = bit / 100;
 8014e2a:	c6638021 	divu      	r1, r3, r19
 8014e2e:	7404      	zextb      	r0, r1
            if (h)
 8014e30:	e900061f 	bez      	r0, 0x8015a6e	// 8015a6e <_vsnprintf+0xe2e>
            m = (bit % 100) / 10;
 8014e34:	c6618421 	mult      	r1, r1, r19
 8014e38:	60c6      	subu      	r3, r1
 8014e3a:	74cc      	zextb      	r3, r3
 8014e3c:	ea15000a 	movi      	r21, 10
 8014e40:	c6a38035 	divu      	r21, r3, r21
                outtxt[j++] = '0' + h;
 8014e44:	202f      	addi      	r0, 48
 8014e46:	dc0a0000 	st.b      	r0, (r10, 0x0)
            if (m)
 8014e4a:	e91506d7 	bez      	r21, 0x8015bf8	// 8015bf8 <_vsnprintf+0xfb8>
 8014e4e:	ea130004 	movi      	r19, 4
 8014e52:	ea160002 	movi      	r22, 2
 8014e56:	ea170003 	movi      	r23, 3
 8014e5a:	c4134820 	lsli      	r0, r19, 0
 8014e5e:	e68e003c 	addi      	r20, r14, 61
 8014e62:	c4164821 	lsli      	r1, r22, 0
                outtxt[j++] = '0' + m;
 8014e66:	e6b5002f 	addi      	r21, r21, 48
 8014e6a:	deb40000 	st.b      	r21, (r20, 0x0)
 8014e6e:	c6ca0036 	addu      	r22, r10, r22
 8014e72:	c4014835 	lsli      	r21, r1, 0
            l = (bit % 100) % 10;
 8014e76:	ea14000a 	movi      	r20, 10
 8014e7a:	c6838021 	divu      	r1, r3, r20
 8014e7e:	c6818421 	mult      	r1, r1, r20
 8014e82:	60c6      	subu      	r3, r1
            outtxt[j++] = '0' + l;
 8014e84:	232f      	addi      	r3, 48
 8014e86:	dc760000 	st.b      	r3, (r22, 0x0)
            outtxt[j++] = '.';
 8014e8a:	332e      	movi      	r3, 46
 8014e8c:	d6ea0023 	str.b      	r3, (r10, r23 << 0)
            bit = (*inuint >> (8 * i)) & 0xff;
 8014e90:	c50255e1 	zext      	r1, r2, 15, 8
            h = bit / 100;
 8014e94:	ea170064 	movi      	r23, 100
 8014e98:	c6e18023 	divu      	r3, r1, r23
 8014e9c:	c40354f6 	zext      	r22, r3, 7, 0
            if (h)
 8014ea0:	e91606ed 	bez      	r22, 0x8015c7a	// 8015c7a <_vsnprintf+0x103a>
            m = (bit % 100) / 10;
 8014ea4:	c6e38423 	mult      	r3, r3, r23
 8014ea8:	596d      	subu      	r3, r1, r3
 8014eaa:	744c      	zextb      	r1, r3
 8014eac:	c6818034 	divu      	r20, r1, r20
                outtxt[j++] = '0' + h;
 8014eb0:	e4150002 	addi      	r0, r21, 3
 8014eb4:	e6d6002f 	addi      	r22, r22, 48
 8014eb8:	7400      	zextb      	r0, r0
 8014eba:	d66a0036 	str.b      	r22, (r10, r19 << 0)
            if (m)
 8014ebe:	e9340777 	bnez      	r20, 0x8015dac	// 8015dac <_vsnprintf+0x116c>
                    outtxt[j++] = '0';
 8014ec2:	e6b50003 	addi      	r21, r21, 4
 8014ec6:	3330      	movi      	r3, 48
 8014ec8:	d40a0023 	str.b      	r3, (r10, r0 << 0)
 8014ecc:	c41554e0 	zext      	r0, r21, 7, 0
 8014ed0:	c4004833 	lsli      	r19, r0, 0
            l = (bit % 100) % 10;
 8014ed4:	ea14000a 	movi      	r20, 10
 8014ed8:	c6818023 	divu      	r3, r1, r20
 8014edc:	c6838423 	mult      	r3, r3, r20
 8014ee0:	596d      	subu      	r3, r1, r3
            outtxt[j++] = '0' + l;
 8014ee2:	232f      	addi      	r3, 48
 8014ee4:	d66a0023 	str.b      	r3, (r10, r19 << 0)
 8014ee8:	5862      	addi      	r3, r0, 1
            outtxt[j++] = '.';
 8014eea:	74cc      	zextb      	r3, r3
 8014eec:	ea0c002e 	movi      	r12, 46
            bit = (*inuint >> (8 * i)) & 0xff;
 8014ef0:	c60256f3 	zext      	r19, r2, 23, 16
            h = bit / 100;
 8014ef4:	ea170064 	movi      	r23, 100
            outtxt[j++] = '.';
 8014ef8:	d46a002c 	str.b      	r12, (r10, r3 << 0)
            h = bit / 100;
 8014efc:	c6f38023 	divu      	r3, r19, r23
 8014f00:	c40354f6 	zext      	r22, r3, 7, 0
            outtxt[j++] = '.';
 8014f04:	5826      	addi      	r1, r0, 2
 8014f06:	7444      	zextb      	r1, r1
            if (h)
 8014f08:	e91606a7 	bez      	r22, 0x8015c56	// 8015c56 <_vsnprintf+0x1016>
            m = (bit % 100) / 10;
 8014f0c:	c6e38423 	mult      	r3, r3, r23
 8014f10:	c4730083 	subu      	r3, r19, r3
 8014f14:	c40354f3 	zext      	r19, r3, 7, 0
 8014f18:	c6938034 	divu      	r20, r19, r20
                outtxt[j++] = '0' + h;
 8014f1c:	e6a00002 	addi      	r21, r0, 3
 8014f20:	e6d6002f 	addi      	r22, r22, 48
 8014f24:	c41554f5 	zext      	r21, r21, 7, 0
 8014f28:	d42a0036 	str.b      	r22, (r10, r1 << 0)
            if (m)
 8014f2c:	e934073d 	bnez      	r20, 0x8015da6	// 8015da6 <_vsnprintf+0x1166>
                    outtxt[j++] = '0';
 8014f30:	582e      	addi      	r1, r0, 4
 8014f32:	3330      	movi      	r3, 48
 8014f34:	7444      	zextb      	r1, r1
 8014f36:	d6aa0023 	str.b      	r3, (r10, r21 << 0)
            l = (bit % 100) % 10;
 8014f3a:	300a      	movi      	r0, 10
 8014f3c:	c4138023 	divu      	r3, r19, r0
 8014f40:	7cc0      	mult      	r3, r0
 8014f42:	c4730083 	subu      	r3, r19, r3
            outtxt[j++] = '0' + l;
 8014f46:	e6610000 	addi      	r19, r1, 1
 8014f4a:	232f      	addi      	r3, 48
            outtxt[j++] = '.';
 8014f4c:	c41354f3 	zext      	r19, r19, 7, 0
 8014f50:	ea0c002e 	movi      	r12, 46
            bit = (*inuint >> (8 * i)) & 0xff;
 8014f54:	4a58      	lsri      	r2, r2, 24
            h = bit / 100;
 8014f56:	ea160064 	movi      	r22, 100
            outtxt[j++] = '0' + l;
 8014f5a:	d42a0023 	str.b      	r3, (r10, r1 << 0)
            outtxt[j++] = '.';
 8014f5e:	d66a002c 	str.b      	r12, (r10, r19 << 0)
            h = bit / 100;
 8014f62:	c6c28033 	divu      	r19, r2, r22
 8014f66:	c41354f4 	zext      	r20, r19, 7, 0
            outtxt[j++] = '.';
 8014f6a:	5966      	addi      	r3, r1, 2
 8014f6c:	74cc      	zextb      	r3, r3
            if (h)
 8014f6e:	e914069e 	bez      	r20, 0x8015caa	// 8015caa <_vsnprintf+0x106a>
            m = (bit % 100) / 10;
 8014f72:	c6d38433 	mult      	r19, r19, r22
 8014f76:	c6620082 	subu      	r2, r2, r19
 8014f7a:	7488      	zextb      	r2, r2
 8014f7c:	c4028020 	divu      	r0, r2, r0
                outtxt[j++] = '0' + h;
 8014f80:	e6a10002 	addi      	r21, r1, 3
 8014f84:	e694002f 	addi      	r20, r20, 48
 8014f88:	c41554f5 	zext      	r21, r21, 7, 0
 8014f8c:	d46a0034 	str.b      	r20, (r10, r3 << 0)
            if (m)
 8014f90:	e9200708 	bnez      	r0, 0x8015da0	// 8015da0 <_vsnprintf+0x1160>
                    outtxt[j++] = '0';
 8014f94:	596e      	addi      	r3, r1, 4
 8014f96:	3130      	movi      	r1, 48
 8014f98:	74cc      	zextb      	r3, r3
 8014f9a:	d6aa0021 	str.b      	r1, (r10, r21 << 0)
            l = (bit % 100) % 10;
 8014f9e:	300a      	movi      	r0, 10
 8014fa0:	c4028021 	divu      	r1, r2, r0
 8014fa4:	7c40      	mult      	r1, r0
 8014fa6:	6086      	subu      	r2, r1
            outtxt[j++] = '0' + l;
 8014fa8:	222f      	addi      	r2, 48
 8014faa:	d46a0022 	str.b      	r2, (r10, r3 << 0)
            outtxt[j++] = '.';
 8014fae:	e5630001 	addi      	r11, r3, 2
            outtxt[j++] = '0' + l;
 8014fb2:	2300      	addi      	r3, 1
            outtxt[j++] = '.';
 8014fb4:	74cc      	zextb      	r3, r3
 8014fb6:	322e      	movi      	r2, 46
 8014fb8:	d46a0022 	str.b      	r2, (r10, r3 << 0)
    outtxt[j - 1] = 0;
 8014fbc:	e46e003a 	addi      	r3, r14, 59
            outtxt[j++] = '.';
 8014fc0:	76ec      	zextb      	r11, r11
    outtxt[j - 1] = 0;
 8014fc2:	3200      	movi      	r2, 0
 8014fc4:	d5630022 	str.b      	r2, (r3, r11 << 0)
    return j - 1;
 8014fc8:	e46b1000 	subi      	r3, r11, 1
        if (flags & FLAGS_PRECISION) {
 8014fcc:	e4522400 	andi      	r2, r18, 1024
    return j - 1;
 8014fd0:	6c4f      	mov      	r1, r3
          l = (l < precision ? l : precision);
 8014fd2:	3a40      	cmpnei      	r2, 0
 8014fd4:	f923cd23 	min.u32      	r3, r3, r9
        if (flags & FLAGS_PRECISION) {
 8014fd8:	b847      	st.w      	r2, (r14, 0x1c)
          l = (l < precision ? l : precision);
 8014fda:	6c87      	mov      	r2, r1
 8014fdc:	c4430c40 	inct      	r2, r3, 0
        if (!(flags & FLAGS_LEFT)) {
 8014fe0:	e4722002 	andi      	r3, r18, 2
          l = (l < precision ? l : precision);
 8014fe4:	b849      	st.w      	r2, (r14, 0x24)
        if (!(flags & FLAGS_LEFT)) {
 8014fe6:	b86a      	st.w      	r3, (r14, 0x28)
 8014fe8:	e923065b 	bnez      	r3, 0x8015c9e	// 8015c9e <_vsnprintf+0x105e>
          while (l++ < width) {
 8014fec:	6508      	cmphs      	r2, r4
 8014fee:	6ccb      	mov      	r3, r2
 8014ff0:	2300      	addi      	r3, 1
 8014ff2:	e8600893 	bt      	0x8016118	// 8016118 <_vsnprintf+0x14d8>
 8014ff6:	c6240023 	addu      	r3, r4, r17
 8014ffa:	c443008b 	subu      	r11, r3, r2
 8014ffe:	c4114822 	lsli      	r2, r17, 0
            out(' ', buffer, idx++, maxlen);
 8015002:	e6310000 	addi      	r17, r17, 1
 8015006:	6cdb      	mov      	r3, r6
 8015008:	6c5f      	mov      	r1, r7
 801500a:	3020      	movi      	r0, 32
 801500c:	7bd5      	jsr      	r5
          while (l++ < width) {
 801500e:	c5710480 	cmpne      	r17, r11
 8015012:	c4114822 	lsli      	r2, r17, 0
 8015016:	0bf6      	bt      	0x8015002	// 8015002 <_vsnprintf+0x3c2>
 8015018:	5c62      	addi      	r3, r4, 1
 801501a:	b869      	st.w      	r3, (r14, 0x24)
        while ((*pstr != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 801501c:	d80a0000 	ld.b      	r0, (r10, 0x0)
 8015020:	e9000034 	bez      	r0, 0x8015088	// 8015088 <_vsnprintf+0x448>
 8015024:	9867      	ld.w      	r3, (r14, 0x1c)
 8015026:	e9030604 	bez      	r3, 0x8015c2e	// 8015c2e <_vsnprintf+0xfee>
 801502a:	c6290023 	addu      	r3, r9, r17
 801502e:	b867      	st.w      	r3, (r14, 0x1c)
          while (l++ < width) {
 8015030:	6e6b      	mov      	r9, r10
 8015032:	0411      	br      	0x8015054	// 8015054 <_vsnprintf+0x414>
          out(*(pstr++), buffer, idx++, maxlen);
 8015034:	e5290000 	addi      	r9, r9, 1
 8015038:	6cdb      	mov      	r3, r6
 801503a:	c4114822 	lsli      	r2, r17, 0
 801503e:	6c5f      	mov      	r1, r7
 8015040:	7bd5      	jsr      	r5
        while ((*pstr != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 8015042:	d8090000 	ld.b      	r0, (r9, 0x0)
          out(*(pstr++), buffer, idx++, maxlen);
 8015046:	e5710000 	addi      	r11, r17, 1
        while ((*pstr != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 801504a:	e9000602 	bez      	r0, 0x8015c4e	// 8015c4e <_vsnprintf+0x100e>
          out(*(pstr++), buffer, idx++, maxlen);
 801504e:	c40b4831 	lsli      	r17, r11, 0
 8015052:	9867      	ld.w      	r3, (r14, 0x1c)
        while ((*pstr != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 8015054:	c6230480 	cmpne      	r3, r17
 8015058:	0bee      	bt      	0x8015034	// 8015034 <_vsnprintf+0x3f4>
        if (flags & FLAGS_LEFT) {
 801505a:	986a      	ld.w      	r3, (r14, 0x28)
 801505c:	e9030016 	bez      	r3, 0x8015088	// 8015088 <_vsnprintf+0x448>
          while (l++ < width) {
 8015060:	9869      	ld.w      	r3, (r14, 0x24)
 8015062:	650c      	cmphs      	r3, r4
 8015064:	0812      	bt      	0x8015088	// 8015088 <_vsnprintf+0x448>
 8015066:	c6240024 	addu      	r4, r4, r17
 801506a:	c464008b 	subu      	r11, r4, r3
 801506e:	c4114822 	lsli      	r2, r17, 0
            out(' ', buffer, idx++, maxlen);
 8015072:	e6310000 	addi      	r17, r17, 1
 8015076:	6cdb      	mov      	r3, r6
 8015078:	6c5f      	mov      	r1, r7
 801507a:	3020      	movi      	r0, 32
 801507c:	7bd5      	jsr      	r5
          while (l++ < width) {
 801507e:	c5710480 	cmpne      	r17, r11
 8015082:	c4114822 	lsli      	r2, r17, 0
 8015086:	0bf6      	bt      	0x8015072	// 8015072 <_vsnprintf+0x432>
        format++;
 8015088:	e4900000 	addi      	r4, r16, 1
        uint32_t ipv4 = va_arg(va, uint32_t);
 801508c:	d96e2008 	ld.w      	r11, (r14, 0x20)
 8015090:	e800fdea 	br      	0x8014c64	// 8014c64 <_vsnprintf+0x24>
        const char* p = va_arg(va, char*);
 8015094:	da6b2000 	ld.w      	r19, (r11, 0x0)
 8015098:	e46b0003 	addi      	r3, r11, 4
 801509c:	b868      	st.w      	r3, (r14, 0x20)
  for (s = str; *s && maxsize--; ++s);
 801509e:	d8130000 	ld.b      	r0, (r19, 0x0)
        unsigned int l = _strnlen_s(p, precision ? precision : (size_t)-1);
 80150a2:	3300      	movi      	r3, 0
 80150a4:	2b00      	subi      	r3, 1
 80150a6:	eb490000 	cmpnei      	r9, 0
 80150aa:	c4690c40 	inct      	r3, r9, 0
  for (s = str; *s && maxsize--; ++s);
 80150ae:	c413482b 	lsli      	r11, r19, 0
 80150b2:	e9200006 	bnez      	r0, 0x80150be	// 80150be <_vsnprintf+0x47e>
 80150b6:	040a      	br      	0x80150ca	// 80150ca <_vsnprintf+0x48a>
 80150b8:	2b00      	subi      	r3, 1
 80150ba:	e9030008 	bez      	r3, 0x80150ca	// 80150ca <_vsnprintf+0x48a>
 80150be:	e56b0000 	addi      	r11, r11, 1
 80150c2:	d84b0000 	ld.b      	r2, (r11, 0x0)
 80150c6:	e922fff9 	bnez      	r2, 0x80150b8	// 80150b8 <_vsnprintf+0x478>
  return (unsigned int)(s - str);
 80150ca:	c66b0083 	subu      	r3, r11, r19
        if (flags & FLAGS_PRECISION) {
 80150ce:	e4522400 	andi      	r2, r18, 1024
  return (unsigned int)(s - str);
 80150d2:	6c4f      	mov      	r1, r3
          l = (l < precision ? l : precision);
 80150d4:	3a40      	cmpnei      	r2, 0
 80150d6:	f923cd23 	min.u32      	r3, r3, r9
        if (flags & FLAGS_PRECISION) {
 80150da:	b84a      	st.w      	r2, (r14, 0x28)
          l = (l < precision ? l : precision);
 80150dc:	6c87      	mov      	r2, r1
 80150de:	c4430c40 	inct      	r2, r3, 0
        if (!(flags & FLAGS_LEFT)) {
 80150e2:	e4722002 	andi      	r3, r18, 2
          l = (l < precision ? l : precision);
 80150e6:	b849      	st.w      	r2, (r14, 0x24)
        if (!(flags & FLAGS_LEFT)) {
 80150e8:	b86b      	st.w      	r3, (r14, 0x2c)
 80150ea:	e92304be 	bnez      	r3, 0x8015a66	// 8015a66 <_vsnprintf+0xe26>
          while (l++ < width) {
 80150ee:	6508      	cmphs      	r2, r4
 80150f0:	6ccb      	mov      	r3, r2
 80150f2:	2300      	addi      	r3, 1
 80150f4:	e8600818 	bt      	0x8016124	// 8016124 <_vsnprintf+0x14e4>
 80150f8:	c6240023 	addu      	r3, r4, r17
 80150fc:	c443008b 	subu      	r11, r3, r2
 8015100:	c4114822 	lsli      	r2, r17, 0
 8015104:	de6e2007 	st.w      	r19, (r14, 0x1c)
            out(' ', buffer, idx++, maxlen);
 8015108:	e6310000 	addi      	r17, r17, 1
 801510c:	6cdb      	mov      	r3, r6
 801510e:	6c5f      	mov      	r1, r7
 8015110:	3020      	movi      	r0, 32
 8015112:	7bd5      	jsr      	r5
          while (l++ < width) {
 8015114:	c5710480 	cmpne      	r17, r11
 8015118:	c4114822 	lsli      	r2, r17, 0
 801511c:	da6e2007 	ld.w      	r19, (r14, 0x1c)
 8015120:	0bf2      	bt      	0x8015104	// 8015104 <_vsnprintf+0x4c4>
 8015122:	5c62      	addi      	r3, r4, 1
 8015124:	b869      	st.w      	r3, (r14, 0x24)
 8015126:	d8130000 	ld.b      	r0, (r19, 0x0)
        while ((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 801512a:	e900ffaf 	bez      	r0, 0x8015088	// 8015088 <_vsnprintf+0x448>
 801512e:	986a      	ld.w      	r3, (r14, 0x28)
 8015130:	e903040c 	bez      	r3, 0x8015948	// 8015948 <_vsnprintf+0xd08>
 8015134:	c6290029 	addu      	r9, r9, r17
 8015138:	0414      	br      	0x8015160	// 8015160 <_vsnprintf+0x520>
          out(*(p++), buffer, idx++, maxlen);
 801513a:	e6730000 	addi      	r19, r19, 1
 801513e:	de6e2007 	st.w      	r19, (r14, 0x1c)
 8015142:	6cdb      	mov      	r3, r6
 8015144:	c4114822 	lsli      	r2, r17, 0
 8015148:	6c5f      	mov      	r1, r7
 801514a:	7bd5      	jsr      	r5
        while ((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 801514c:	da6e2007 	ld.w      	r19, (r14, 0x1c)
          out(*(p++), buffer, idx++, maxlen);
 8015150:	e5710000 	addi      	r11, r17, 1
        while ((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 8015154:	d8130000 	ld.b      	r0, (r19, 0x0)
 8015158:	e900040b 	bez      	r0, 0x801596e	// 801596e <_vsnprintf+0xd2e>
          out(*(p++), buffer, idx++, maxlen);
 801515c:	c40b4831 	lsli      	r17, r11, 0
        while ((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 8015160:	c6290480 	cmpne      	r9, r17
 8015164:	0beb      	bt      	0x801513a	// 801513a <_vsnprintf+0x4fa>
        if (flags & FLAGS_LEFT) {
 8015166:	986b      	ld.w      	r3, (r14, 0x2c)
 8015168:	e903ff90 	bez      	r3, 0x8015088	// 8015088 <_vsnprintf+0x448>
          while (l++ < width) {
 801516c:	9869      	ld.w      	r3, (r14, 0x24)
 801516e:	650c      	cmphs      	r3, r4
 8015170:	0b8c      	bt      	0x8015088	// 8015088 <_vsnprintf+0x448>
 8015172:	c6240024 	addu      	r4, r4, r17
 8015176:	c464008b 	subu      	r11, r4, r3
 801517a:	c4114822 	lsli      	r2, r17, 0
            out(' ', buffer, idx++, maxlen);
 801517e:	e6310000 	addi      	r17, r17, 1
 8015182:	6cdb      	mov      	r3, r6
 8015184:	6c5f      	mov      	r1, r7
 8015186:	3020      	movi      	r0, 32
 8015188:	7bd5      	jsr      	r5
          while (l++ < width) {
 801518a:	c5710480 	cmpne      	r17, r11
 801518e:	c4114822 	lsli      	r2, r17, 0
 8015192:	0bf6      	bt      	0x801517e	// 801517e <_vsnprintf+0x53e>
        format++;
 8015194:	e4900000 	addi      	r4, r16, 1
        uint32_t ipv4 = va_arg(va, uint32_t);
 8015198:	d96e2008 	ld.w      	r11, (r14, 0x20)
 801519c:	e800fd64 	br      	0x8014c64	// 8014c64 <_vsnprintf+0x24>
          idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned long)((uintptr_t)va_arg(va, void*)), false, 16U, precision, width, flags);
 80151a0:	d86b2000 	ld.w      	r3, (r11, 0x0)
 80151a4:	e66b0003 	addi      	r19, r11, 4
  if (!value) {
 80151a8:	e903044f 	bez      	r3, 0x8015a46	// 8015a46 <_vsnprintf+0xe06>
        flags |= FLAGS_ZEROPAD | FLAGS_UPPERCASE;
 80151ac:	eeb20021 	ori      	r21, r18, 33
 80151b0:	6c2b      	mov      	r0, r10
          while (l++ < width) {
 80151b2:	ea140000 	movi      	r20, 0
 80151b6:	ea120020 	movi      	r18, 32
      const char digit = (char)(value % base);
 80151ba:	e423200f 	andi      	r1, r3, 15
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 80151be:	3909      	cmphsi      	r1, 10
      const char digit = (char)(value % base);
 80151c0:	7484      	zextb      	r2, r1
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 80151c2:	e6940000 	addi      	r20, r20, 1
 80151c6:	e86003f0 	bt      	0x80159a6	// 80159a6 <_vsnprintf+0xd66>
 80151ca:	222f      	addi      	r2, 48
      value /= base;
 80151cc:	4b64      	lsri      	r3, r3, 4
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 80151ce:	a040      	st.b      	r2, (r0, 0x0)
    } while (value && (len < PRINTF_NTOA_BUFFER_SIZE));
 80151d0:	e9030005 	bez      	r3, 0x80151da	// 80151da <_vsnprintf+0x59a>
 80151d4:	2000      	addi      	r0, 1
 80151d6:	e832fff2 	bnezad      	r18, 0x80151ba	// 80151ba <_vsnprintf+0x57a>
  return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags);
 80151da:	3308      	movi      	r3, 8
 80151dc:	b865      	st.w      	r3, (r14, 0x14)
 80151de:	3310      	movi      	r3, 16
 80151e0:	b863      	st.w      	r3, (r14, 0xc)
 80151e2:	3300      	movi      	r3, 0
 80151e4:	c413482b 	lsli      	r11, r19, 0
 80151e8:	deae2006 	st.w      	r21, (r14, 0x18)
 80151ec:	dd2e2004 	st.w      	r9, (r14, 0x10)
 80151f0:	b862      	st.w      	r3, (r14, 0x8)
 80151f2:	de8e2001 	st.w      	r20, (r14, 0x4)
 80151f6:	c4114822 	lsli      	r2, r17, 0
 80151fa:	dd4e2000 	st.w      	r10, (r14, 0x0)
 80151fe:	6cdb      	mov      	r3, r6
 8015200:	6c5f      	mov      	r1, r7
 8015202:	6c17      	mov      	r0, r5
 8015204:	e3fff3c4 	bsr      	0x801398c	// 801398c <_ntoa_format>
 8015208:	c4004831 	lsli      	r17, r0, 0
 801520c:	0423      	br      	0x8015252	// 8015252 <_vsnprintf+0x612>
        if (!(flags & FLAGS_LEFT)) {
 801520e:	e6522002 	andi      	r18, r18, 2
 8015212:	e9320446 	bnez      	r18, 0x8015a9e	// 8015a9e <_vsnprintf+0xe5e>
          while (l++ < width) {
 8015216:	3301      	movi      	r3, 1
 8015218:	650c      	cmphs      	r3, r4
 801521a:	e860078d 	bt      	0x8016134	// 8016134 <_vsnprintf+0x14f4>
 801521e:	e4711000 	subi      	r3, r17, 1
 8015222:	610c      	addu      	r4, r3
            out(' ', buffer, idx++, maxlen);
 8015224:	e5310000 	addi      	r9, r17, 1
 8015228:	c4114822 	lsli      	r2, r17, 0
 801522c:	6cdb      	mov      	r3, r6
 801522e:	6c5f      	mov      	r1, r7
 8015230:	3020      	movi      	r0, 32
 8015232:	7bd5      	jsr      	r5
          while (l++ < width) {
 8015234:	6526      	cmpne      	r9, r4
 8015236:	c4094831 	lsli      	r17, r9, 0
 801523a:	0bf5      	bt      	0x8015224	// 8015224 <_vsnprintf+0x5e4>
        out((char)va_arg(va, int), buffer, idx++, maxlen);
 801523c:	d80b0000 	ld.b      	r0, (r11, 0x0)
 8015240:	e48b0003 	addi      	r4, r11, 4
 8015244:	6cdb      	mov      	r3, r6
 8015246:	6ca7      	mov      	r2, r9
 8015248:	6c5f      	mov      	r1, r7
 801524a:	e6290000 	addi      	r17, r9, 1
 801524e:	7bd5      	jsr      	r5
 8015250:	6ed3      	mov      	r11, r4
        format++;
 8015252:	e4900000 	addi      	r4, r16, 1
        break;
 8015256:	e800fd07 	br      	0x8014c64	// 8014c64 <_vsnprintf+0x24>
        if (*format == 'x' || *format == 'X') {
 801525a:	eb400078 	cmpnei      	r0, 120
 801525e:	e840059e 	bf      	0x8015d9a	// 8015d9a <_vsnprintf+0x115a>
 8015262:	eb400058 	cmpnei      	r0, 88
 8015266:	e8400588 	bf      	0x8015d76	// 8015d76 <_vsnprintf+0x1136>
        else if (*format == 'o') {
 801526a:	eb40006f 	cmpnei      	r0, 111
 801526e:	e84004d4 	bf      	0x8015c16	// 8015c16 <_vsnprintf+0xfd6>
        else if (*format == 'b') {
 8015272:	eb400062 	cmpnei      	r0, 98
 8015276:	e840069a 	bf      	0x8015faa	// 8015faa <_vsnprintf+0x136a>
        if ((*format != 'i') && (*format != 'd')) {
 801527a:	eb400069 	cmpnei      	r0, 105
          flags &= ~FLAGS_HASH;   // no hash for dec format
 801527e:	c4922823 	bclri      	r3, r18, 4
 8015282:	b867      	st.w      	r3, (r14, 0x1c)
        if ((*format != 'i') && (*format != 'd')) {
 8015284:	e8600523 	bt      	0x8015cca	// 8015cca <_vsnprintf+0x108a>
        if (flags & FLAGS_PRECISION) {
 8015288:	e6522400 	andi      	r18, r18, 1024
          base = 10U;
 801528c:	ea13000a 	movi      	r19, 10
        if (flags & FLAGS_PRECISION) {
 8015290:	e9120528 	bez      	r18, 0x8015ce0	// 8015ce0 <_vsnprintf+0x10a0>
          flags &= ~FLAGS_ZEROPAD;
 8015294:	3b80      	bclri      	r3, 0
 8015296:	b867      	st.w      	r3, (r14, 0x1c)
        if ((*format == 'i') || (*format == 'd')) {
 8015298:	eb400069 	cmpnei      	r0, 105
 801529c:	e8400522 	bf      	0x8015ce0	// 8015ce0 <_vsnprintf+0x10a0>
 80152a0:	eb400064 	cmpnei      	r0, 100
 80152a4:	e840051e 	bf      	0x8015ce0	// 8015ce0 <_vsnprintf+0x10a0>
          if (flags & FLAGS_LONG_LONG) {
 80152a8:	9867      	ld.w      	r3, (r14, 0x1c)
 80152aa:	e4032200 	andi      	r0, r3, 512
 80152ae:	e9200595 	bnez      	r0, 0x8015dd8	// 8015dd8 <_vsnprintf+0x1198>
          else if (flags & FLAGS_LONG) {
 80152b2:	e4232100 	andi      	r1, r3, 256
 80152b6:	e921067d 	bnez      	r1, 0x8015fb0	// 8015fb0 <_vsnprintf+0x1370>
            const unsigned int value = (flags & FLAGS_CHAR) ? (unsigned char)va_arg(va, unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int) : va_arg(va, unsigned int);
 80152ba:	e4632040 	andi      	r3, r3, 64
 80152be:	e9230727 	bnez      	r3, 0x801610c	// 801610c <_vsnprintf+0x14cc>
 80152c2:	9867      	ld.w      	r3, (r14, 0x1c)
 80152c4:	e4632080 	andi      	r3, r3, 128
 80152c8:	e923069f 	bnez      	r3, 0x8016006	// 8016006 <_vsnprintf+0x13c6>
 80152cc:	d86b2000 	ld.w      	r3, (r11, 0x0)
 80152d0:	e56b0003 	addi      	r11, r11, 4
  if (!value) {
 80152d4:	e923000a 	bnez      	r3, 0x80152e8	// 80152e8 <_vsnprintf+0x6a8>
    flags &= ~FLAGS_HASH;
 80152d8:	9807      	ld.w      	r0, (r14, 0x1c)
 80152da:	c4802822 	bclri      	r2, r0, 4
  if (!(flags & FLAGS_PRECISION) || value) {
 80152de:	e4002400 	andi      	r0, r0, 1024
    flags &= ~FLAGS_HASH;
 80152e2:	b847      	st.w      	r2, (r14, 0x1c)
  if (!(flags & FLAGS_PRECISION) || value) {
 80152e4:	e92006b4 	bnez      	r0, 0x801604c	// 801604c <_vsnprintf+0x140c>
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 80152e8:	9847      	ld.w      	r2, (r14, 0x1c)
 80152ea:	e4422020 	andi      	r2, r2, 32
 80152ee:	3a40      	cmpnei      	r2, 0
 80152f0:	ea140041 	movi      	r20, 65
 80152f4:	3261      	movi      	r2, 97
 80152f6:	c6820c20 	incf      	r20, r2, 0
 80152fa:	c40a4832 	lsli      	r18, r10, 0
 80152fe:	e6941009 	subi      	r20, r20, 10
 8015302:	040f      	br      	0x8015320	// 8015320 <_vsnprintf+0x6e0>
 8015304:	e462002f 	addi      	r3, r2, 48
 8015308:	74cc      	zextb      	r3, r3
 801530a:	dc720000 	st.b      	r3, (r18, 0x0)
      value /= base;
 801530e:	6cc3      	mov      	r3, r0
    } while (value && (len < PRINTF_NTOA_BUFFER_SIZE));
 8015310:	e900069e 	bez      	r0, 0x801604c	// 801604c <_vsnprintf+0x140c>
 8015314:	eb410020 	cmpnei      	r1, 32
 8015318:	e6520000 	addi      	r18, r18, 1
 801531c:	e8400698 	bf      	0x801604c	// 801604c <_vsnprintf+0x140c>
      const char digit = (char)(value % base);
 8015320:	c6638020 	divu      	r0, r3, r19
 8015324:	c6608422 	mult      	r2, r0, r19
 8015328:	60ca      	subu      	r3, r2
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 801532a:	3b09      	cmphsi      	r3, 10
      const char digit = (char)(value % base);
 801532c:	748c      	zextb      	r2, r3
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 801532e:	2100      	addi      	r1, 1
 8015330:	0fea      	bf      	0x8015304	// 8015304 <_vsnprintf+0x6c4>
 8015332:	c6820023 	addu      	r3, r2, r20
 8015336:	74cc      	zextb      	r3, r3
 8015338:	07e9      	br      	0x801530a	// 801530a <_vsnprintf+0x6ca>
        char *ipv6 = va_arg(va, char*);
 801533a:	d84b2000 	ld.w      	r2, (r11, 0x0)
 801533e:	e46b0003 	addi      	r3, r11, 4
 8015342:	b869      	st.w      	r3, (r14, 0x24)
                m = (*inuint >> (8 * i)) & 0xff;
 8015344:	9260      	ld.w      	r3, (r2, 0x0)
 8015346:	744c      	zextb      	r1, r3
                h = m >> 4;
 8015348:	c4814853 	lsri      	r19, r1, 4
                if (h > 9)
 801534c:	eb130009 	cmphsi      	r19, 10
                l = m & 0xf;
 8015350:	e421200f 	andi      	r1, r1, 15
                if (h > 9)
 8015354:	e8600444 	bt      	0x8015bdc	// 8015bdc <_vsnprintf+0xf9c>
                    outtxt[j++]= '0' + h;
 8015358:	e673002f 	addi      	r19, r19, 48
                if (l > 9)
 801535c:	3009      	movi      	r0, 9
 801535e:	6440      	cmphs      	r0, r1
 8015360:	de6a0000 	st.b      	r19, (r10, 0x0)
 8015364:	e8600439 	bt      	0x8015bd6	// 8015bd6 <_vsnprintf+0xf96>
                    outtxt[j++] = 'A' + l - 10;
 8015368:	2136      	addi      	r1, 55
 801536a:	dc2a0001 	st.b      	r1, (r10, 0x1)
                m = (*inuint >> (8 * i)) & 0xff;
 801536e:	c50355e1 	zext      	r1, r3, 15, 8
                h = m >> 4;
 8015372:	4904      	lsri      	r0, r1, 4
                if (h > 9)
 8015374:	3809      	cmphsi      	r0, 10
                l = m & 0xf;
 8015376:	e421200f 	andi      	r1, r1, 15
                if (h > 9)
 801537a:	e860042b 	bt      	0x8015bd0	// 8015bd0 <_vsnprintf+0xf90>
                    outtxt[j++]= '0' + h;
 801537e:	202f      	addi      	r0, 48
 8015380:	dc0a0002 	st.b      	r0, (r10, 0x2)
                if (l > 9)
 8015384:	3009      	movi      	r0, 9
 8015386:	6440      	cmphs      	r0, r1
 8015388:	e8600421 	bt      	0x8015bca	// 8015bca <_vsnprintf+0xf8a>
                    outtxt[j++] = 'A' + l - 10;
 801538c:	2136      	addi      	r1, 55
 801538e:	dc2a0003 	st.b      	r1, (r10, 0x3)
                    outtxt[j++] = ':';
 8015392:	313a      	movi      	r1, 58
 8015394:	dc2a0004 	st.b      	r1, (r10, 0x4)
                m = (*inuint >> (8 * i)) & 0xff;
 8015398:	c60356e1 	zext      	r1, r3, 23, 16
                h = m >> 4;
 801539c:	4904      	lsri      	r0, r1, 4
                if (h > 9)
 801539e:	3809      	cmphsi      	r0, 10
                l = m & 0xf;
 80153a0:	e421200f 	andi      	r1, r1, 15
                if (h > 9)
 80153a4:	e8600410 	bt      	0x8015bc4	// 8015bc4 <_vsnprintf+0xf84>
                    outtxt[j++]= '0' + h;
 80153a8:	202f      	addi      	r0, 48
 80153aa:	dc0a0005 	st.b      	r0, (r10, 0x5)
                if (l > 9)
 80153ae:	3009      	movi      	r0, 9
 80153b0:	6440      	cmphs      	r0, r1
 80153b2:	e8600406 	bt      	0x8015bbe	// 8015bbe <_vsnprintf+0xf7e>
                    outtxt[j++] = 'A' + l - 10;
 80153b6:	2136      	addi      	r1, 55
                m = (*inuint >> (8 * i)) & 0xff;
 80153b8:	4b78      	lsri      	r3, r3, 24
 80153ba:	dc2a0006 	st.b      	r1, (r10, 0x6)
                h = m >> 4;
 80153be:	4b24      	lsri      	r1, r3, 4
                if (h > 9)
 80153c0:	3909      	cmphsi      	r1, 10
                l = m & 0xf;
 80153c2:	e463200f 	andi      	r3, r3, 15
                if (h > 9)
 80153c6:	e86003f9 	bt      	0x8015bb8	// 8015bb8 <_vsnprintf+0xf78>
                    outtxt[j++]= '0' + h;
 80153ca:	212f      	addi      	r1, 48
 80153cc:	dc2a0007 	st.b      	r1, (r10, 0x7)
                if (l > 9)
 80153d0:	3109      	movi      	r1, 9
 80153d2:	64c4      	cmphs      	r1, r3
 80153d4:	e86003ef 	bt      	0x8015bb2	// 8015bb2 <_vsnprintf+0xf72>
                    outtxt[j++] = 'A' + l - 10;
 80153d8:	2336      	addi      	r3, 55
 80153da:	dc6a0008 	st.b      	r3, (r10, 0x8)
                    outtxt[j++] = ':';
 80153de:	333a      	movi      	r3, 58
 80153e0:	dc6a0009 	st.b      	r3, (r10, 0x9)
                m = (*inuint >> (8 * i)) & 0xff;
 80153e4:	9261      	ld.w      	r3, (r2, 0x4)
 80153e6:	744c      	zextb      	r1, r3
                h = m >> 4;
 80153e8:	4904      	lsri      	r0, r1, 4
                if (h > 9)
 80153ea:	3809      	cmphsi      	r0, 10
                l = m & 0xf;
 80153ec:	e421200f 	andi      	r1, r1, 15
                if (h > 9)
 80153f0:	e86003de 	bt      	0x8015bac	// 8015bac <_vsnprintf+0xf6c>
                    outtxt[j++]= '0' + h;
 80153f4:	202f      	addi      	r0, 48
 80153f6:	dc0a000a 	st.b      	r0, (r10, 0xa)
                if (l > 9)
 80153fa:	3009      	movi      	r0, 9
 80153fc:	6440      	cmphs      	r0, r1
 80153fe:	e86003d4 	bt      	0x8015ba6	// 8015ba6 <_vsnprintf+0xf66>
                    outtxt[j++] = 'A' + l - 10;
 8015402:	2136      	addi      	r1, 55
 8015404:	dc2a000b 	st.b      	r1, (r10, 0xb)
                m = (*inuint >> (8 * i)) & 0xff;
 8015408:	c50355e1 	zext      	r1, r3, 15, 8
                h = m >> 4;
 801540c:	4904      	lsri      	r0, r1, 4
                if (h > 9)
 801540e:	3809      	cmphsi      	r0, 10
                l = m & 0xf;
 8015410:	e421200f 	andi      	r1, r1, 15
                if (h > 9)
 8015414:	e86003c6 	bt      	0x8015ba0	// 8015ba0 <_vsnprintf+0xf60>
                    outtxt[j++]= '0' + h;
 8015418:	202f      	addi      	r0, 48
 801541a:	dc0a000c 	st.b      	r0, (r10, 0xc)
                if (l > 9)
 801541e:	3009      	movi      	r0, 9
 8015420:	6440      	cmphs      	r0, r1
 8015422:	e86003bc 	bt      	0x8015b9a	// 8015b9a <_vsnprintf+0xf5a>
                    outtxt[j++] = 'A' + l - 10;
 8015426:	2136      	addi      	r1, 55
 8015428:	dc2a000d 	st.b      	r1, (r10, 0xd)
                    outtxt[j++] = ':';
 801542c:	313a      	movi      	r1, 58
 801542e:	dc2a000e 	st.b      	r1, (r10, 0xe)
                m = (*inuint >> (8 * i)) & 0xff;
 8015432:	c60356e1 	zext      	r1, r3, 23, 16
                h = m >> 4;
 8015436:	4904      	lsri      	r0, r1, 4
                if (h > 9)
 8015438:	3809      	cmphsi      	r0, 10
                l = m & 0xf;
 801543a:	e421200f 	andi      	r1, r1, 15
                if (h > 9)
 801543e:	e86003ab 	bt      	0x8015b94	// 8015b94 <_vsnprintf+0xf54>
                    outtxt[j++]= '0' + h;
 8015442:	202f      	addi      	r0, 48
 8015444:	dc0a000f 	st.b      	r0, (r10, 0xf)
                if (l > 9)
 8015448:	3009      	movi      	r0, 9
 801544a:	6440      	cmphs      	r0, r1
 801544c:	e86003a1 	bt      	0x8015b8e	// 8015b8e <_vsnprintf+0xf4e>
                    outtxt[j++] = 'A' + l - 10;
 8015450:	2136      	addi      	r1, 55
                m = (*inuint >> (8 * i)) & 0xff;
 8015452:	4b78      	lsri      	r3, r3, 24
 8015454:	dc2a0010 	st.b      	r1, (r10, 0x10)
                h = m >> 4;
 8015458:	4b24      	lsri      	r1, r3, 4
                if (h > 9)
 801545a:	3909      	cmphsi      	r1, 10
                l = m & 0xf;
 801545c:	e463200f 	andi      	r3, r3, 15
                if (h > 9)
 8015460:	e8600394 	bt      	0x8015b88	// 8015b88 <_vsnprintf+0xf48>
                    outtxt[j++]= '0' + h;
 8015464:	212f      	addi      	r1, 48
 8015466:	dc2a0011 	st.b      	r1, (r10, 0x11)
                if (l > 9)
 801546a:	3109      	movi      	r1, 9
 801546c:	64c4      	cmphs      	r1, r3
 801546e:	e860038a 	bt      	0x8015b82	// 8015b82 <_vsnprintf+0xf42>
                    outtxt[j++] = 'A' + l - 10;
 8015472:	2336      	addi      	r3, 55
 8015474:	dc6a0012 	st.b      	r3, (r10, 0x12)
                    outtxt[j++] = ':';
 8015478:	333a      	movi      	r3, 58
 801547a:	dc6a0013 	st.b      	r3, (r10, 0x13)
                m = (*inuint >> (8 * i)) & 0xff;
 801547e:	9262      	ld.w      	r3, (r2, 0x8)
 8015480:	744c      	zextb      	r1, r3
                h = m >> 4;
 8015482:	4904      	lsri      	r0, r1, 4
                if (h > 9)
 8015484:	3809      	cmphsi      	r0, 10
                l = m & 0xf;
 8015486:	e421200f 	andi      	r1, r1, 15
                if (h > 9)
 801548a:	e8600379 	bt      	0x8015b7c	// 8015b7c <_vsnprintf+0xf3c>
                    outtxt[j++]= '0' + h;
 801548e:	202f      	addi      	r0, 48
 8015490:	dc0a0014 	st.b      	r0, (r10, 0x14)
                if (l > 9)
 8015494:	3009      	movi      	r0, 9
 8015496:	6440      	cmphs      	r0, r1
 8015498:	e860036f 	bt      	0x8015b76	// 8015b76 <_vsnprintf+0xf36>
                    outtxt[j++] = 'A' + l - 10;
 801549c:	2136      	addi      	r1, 55
 801549e:	dc2a0015 	st.b      	r1, (r10, 0x15)
                m = (*inuint >> (8 * i)) & 0xff;
 80154a2:	c50355e1 	zext      	r1, r3, 15, 8
                h = m >> 4;
 80154a6:	4904      	lsri      	r0, r1, 4
                if (h > 9)
 80154a8:	3809      	cmphsi      	r0, 10
                l = m & 0xf;
 80154aa:	e421200f 	andi      	r1, r1, 15
                if (h > 9)
 80154ae:	e8600361 	bt      	0x8015b70	// 8015b70 <_vsnprintf+0xf30>
                    outtxt[j++]= '0' + h;
 80154b2:	202f      	addi      	r0, 48
 80154b4:	dc0a0016 	st.b      	r0, (r10, 0x16)
                if (l > 9)
 80154b8:	3009      	movi      	r0, 9
 80154ba:	6440      	cmphs      	r0, r1
 80154bc:	e8600357 	bt      	0x8015b6a	// 8015b6a <_vsnprintf+0xf2a>
                    outtxt[j++] = 'A' + l - 10;
 80154c0:	2136      	addi      	r1, 55
 80154c2:	dc2a0017 	st.b      	r1, (r10, 0x17)
                    outtxt[j++] = ':';
 80154c6:	313a      	movi      	r1, 58
 80154c8:	dc2a0018 	st.b      	r1, (r10, 0x18)
                m = (*inuint >> (8 * i)) & 0xff;
 80154cc:	c60356e1 	zext      	r1, r3, 23, 16
                h = m >> 4;
 80154d0:	4904      	lsri      	r0, r1, 4
                if (h > 9)
 80154d2:	3809      	cmphsi      	r0, 10
                l = m & 0xf;
 80154d4:	e421200f 	andi      	r1, r1, 15
                if (h > 9)
 80154d8:	e8600346 	bt      	0x8015b64	// 8015b64 <_vsnprintf+0xf24>
                    outtxt[j++]= '0' + h;
 80154dc:	202f      	addi      	r0, 48
 80154de:	dc0a0019 	st.b      	r0, (r10, 0x19)
                if (l > 9)
 80154e2:	3009      	movi      	r0, 9
 80154e4:	6440      	cmphs      	r0, r1
 80154e6:	e860033c 	bt      	0x8015b5e	// 8015b5e <_vsnprintf+0xf1e>
                    outtxt[j++] = 'A' + l - 10;
 80154ea:	2136      	addi      	r1, 55
                m = (*inuint >> (8 * i)) & 0xff;
 80154ec:	4b78      	lsri      	r3, r3, 24
 80154ee:	dc2a001a 	st.b      	r1, (r10, 0x1a)
                h = m >> 4;
 80154f2:	4b24      	lsri      	r1, r3, 4
                if (h > 9)
 80154f4:	3909      	cmphsi      	r1, 10
                l = m & 0xf;
 80154f6:	e463200f 	andi      	r3, r3, 15
                if (h > 9)
 80154fa:	e860032f 	bt      	0x8015b58	// 8015b58 <_vsnprintf+0xf18>
                    outtxt[j++]= '0' + h;
 80154fe:	212f      	addi      	r1, 48
 8015500:	dc2a001b 	st.b      	r1, (r10, 0x1b)
                if (l > 9)
 8015504:	3109      	movi      	r1, 9
 8015506:	64c4      	cmphs      	r1, r3
 8015508:	e8600325 	bt      	0x8015b52	// 8015b52 <_vsnprintf+0xf12>
                    outtxt[j++] = 'A' + l - 10;
 801550c:	2336      	addi      	r3, 55
 801550e:	dc6a001c 	st.b      	r3, (r10, 0x1c)
                    outtxt[j++] = ':';
 8015512:	333a      	movi      	r3, 58
 8015514:	dc6a001d 	st.b      	r3, (r10, 0x1d)
                m = (*inuint >> (8 * i)) & 0xff;
 8015518:	9263      	ld.w      	r3, (r2, 0xc)
 801551a:	748c      	zextb      	r2, r3
                h = m >> 4;
 801551c:	4a24      	lsri      	r1, r2, 4
                if (h > 9)
 801551e:	3909      	cmphsi      	r1, 10
                l = m & 0xf;
 8015520:	e442200f 	andi      	r2, r2, 15
                if (h > 9)
 8015524:	e8600314 	bt      	0x8015b4c	// 8015b4c <_vsnprintf+0xf0c>
                    outtxt[j++]= '0' + h;
 8015528:	212f      	addi      	r1, 48
 801552a:	dc2a001e 	st.b      	r1, (r10, 0x1e)
                if (l > 9)
 801552e:	3109      	movi      	r1, 9
 8015530:	6484      	cmphs      	r1, r2
 8015532:	e860030a 	bt      	0x8015b46	// 8015b46 <_vsnprintf+0xf06>
                    outtxt[j++] = 'A' + l - 10;
 8015536:	2236      	addi      	r2, 55
 8015538:	dc4a001f 	st.b      	r2, (r10, 0x1f)
                m = (*inuint >> (8 * i)) & 0xff;
 801553c:	c50355e2 	zext      	r2, r3, 15, 8
                h = m >> 4;
 8015540:	4a24      	lsri      	r1, r2, 4
                if (h > 9)
 8015542:	3909      	cmphsi      	r1, 10
                l = m & 0xf;
 8015544:	e442200f 	andi      	r2, r2, 15
                if (h > 9)
 8015548:	e86002fc 	bt      	0x8015b40	// 8015b40 <_vsnprintf+0xf00>
                    outtxt[j++]= '0' + h;
 801554c:	212f      	addi      	r1, 48
 801554e:	dc2a0020 	st.b      	r1, (r10, 0x20)
                if (l > 9)
 8015552:	3109      	movi      	r1, 9
 8015554:	6484      	cmphs      	r1, r2
 8015556:	e86002f2 	bt      	0x8015b3a	// 8015b3a <_vsnprintf+0xefa>
                    outtxt[j++] = 'A' + l - 10;
 801555a:	2236      	addi      	r2, 55
 801555c:	dc4a0021 	st.b      	r2, (r10, 0x21)
                    outtxt[j++] = ':';
 8015560:	323a      	movi      	r2, 58
 8015562:	dc4a0022 	st.b      	r2, (r10, 0x22)
                m = (*inuint >> (8 * i)) & 0xff;
 8015566:	c60356e2 	zext      	r2, r3, 23, 16
                h = m >> 4;
 801556a:	4a24      	lsri      	r1, r2, 4
                if (h > 9)
 801556c:	3909      	cmphsi      	r1, 10
                l = m & 0xf;
 801556e:	e442200f 	andi      	r2, r2, 15
                if (h > 9)
 8015572:	e86002e1 	bt      	0x8015b34	// 8015b34 <_vsnprintf+0xef4>
                    outtxt[j++]= '0' + h;
 8015576:	212f      	addi      	r1, 48
 8015578:	dc2a0023 	st.b      	r1, (r10, 0x23)
                if (l > 9)
 801557c:	3109      	movi      	r1, 9
 801557e:	6484      	cmphs      	r1, r2
 8015580:	e86002d7 	bt      	0x8015b2e	// 8015b2e <_vsnprintf+0xeee>
                    outtxt[j++] = 'A' + l - 10;
 8015584:	2236      	addi      	r2, 55
                m = (*inuint >> (8 * i)) & 0xff;
 8015586:	4b78      	lsri      	r3, r3, 24
 8015588:	dc4a0024 	st.b      	r2, (r10, 0x24)
                h = m >> 4;
 801558c:	4b44      	lsri      	r2, r3, 4
                if (h > 9)
 801558e:	3a09      	cmphsi      	r2, 10
                l = m & 0xf;
 8015590:	e463200f 	andi      	r3, r3, 15
                if (h > 9)
 8015594:	e86002ca 	bt      	0x8015b28	// 8015b28 <_vsnprintf+0xee8>
                    outtxt[j++]= '0' + h;
 8015598:	222f      	addi      	r2, 48
 801559a:	dc4a0025 	st.b      	r2, (r10, 0x25)
                if (l > 9)
 801559e:	3209      	movi      	r2, 9
 80155a0:	64c8      	cmphs      	r2, r3
 80155a2:	e86002c0 	bt      	0x8015b22	// 8015b22 <_vsnprintf+0xee2>
                    outtxt[j++] = 'A' + l - 10;
 80155a6:	2336      	addi      	r3, 55
 80155a8:	dc6a0026 	st.b      	r3, (r10, 0x26)
    outtxt[j - 1] = 0;
 80155ac:	3300      	movi      	r3, 0
 80155ae:	dc6a0027 	st.b      	r3, (r10, 0x27)
        if (flags & FLAGS_PRECISION) {
 80155b2:	e4722400 	andi      	r3, r18, 1024
 80155b6:	b86a      	st.w      	r3, (r14, 0x28)
 80155b8:	e9030253 	bez      	r3, 0x8015a5e	// 8015a5e <_vsnprintf+0xe1e>
          l = (l < precision ? l : precision);
 80155bc:	ea0b0027 	movi      	r11, 39
 80155c0:	f969cd23 	min.u32      	r3, r9, r11
 80155c4:	b868      	st.w      	r3, (r14, 0x20)
        if (!(flags & FLAGS_LEFT)) {
 80155c6:	e4722002 	andi      	r3, r18, 2
 80155ca:	b86b      	st.w      	r3, (r14, 0x2c)
 80155cc:	e923001f 	bnez      	r3, 0x801560a	// 801560a <_vsnprintf+0x9ca>
          while (l++ < width) {
 80155d0:	9848      	ld.w      	r2, (r14, 0x20)
 80155d2:	6508      	cmphs      	r2, r4
 80155d4:	6ccb      	mov      	r3, r2
 80155d6:	2300      	addi      	r3, 1
 80155d8:	e86005b2 	bt      	0x801613c	// 801613c <_vsnprintf+0x14fc>
 80155dc:	c6240023 	addu      	r3, r4, r17
 80155e0:	c443008b 	subu      	r11, r3, r2
 80155e4:	c4114822 	lsli      	r2, r17, 0
 80155e8:	de6e2007 	st.w      	r19, (r14, 0x1c)
            out(' ', buffer, idx++, maxlen);
 80155ec:	e6310000 	addi      	r17, r17, 1
 80155f0:	6cdb      	mov      	r3, r6
 80155f2:	6c5f      	mov      	r1, r7
 80155f4:	3020      	movi      	r0, 32
 80155f6:	7bd5      	jsr      	r5
          while (l++ < width) {
 80155f8:	c5710480 	cmpne      	r17, r11
 80155fc:	c4114822 	lsli      	r2, r17, 0
 8015600:	da6e2007 	ld.w      	r19, (r14, 0x1c)
 8015604:	0bf2      	bt      	0x80155e8	// 80155e8 <_vsnprintf+0x9a8>
 8015606:	5c62      	addi      	r3, r4, 1
 8015608:	b868      	st.w      	r3, (r14, 0x20)
 801560a:	986a      	ld.w      	r3, (r14, 0x28)
 801560c:	e90301e0 	bez      	r3, 0x80159cc	// 80159cc <_vsnprintf+0xd8c>
 8015610:	c6290023 	addu      	r3, r9, r17
 8015614:	b867      	st.w      	r3, (r14, 0x1c)
 8015616:	6e6b      	mov      	r9, r10
 8015618:	0413      	br      	0x801563e	// 801563e <_vsnprintf+0x9fe>
          out(*(pstr++), buffer, idx++, maxlen);
 801561a:	e5290000 	addi      	r9, r9, 1
 801561e:	c4134820 	lsli      	r0, r19, 0
 8015622:	6cdb      	mov      	r3, r6
 8015624:	c4114822 	lsli      	r2, r17, 0
 8015628:	6c5f      	mov      	r1, r7
 801562a:	7bd5      	jsr      	r5
        while ((*pstr != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 801562c:	da690000 	ld.b      	r19, (r9, 0x0)
          out(*(pstr++), buffer, idx++, maxlen);
 8015630:	e5710000 	addi      	r11, r17, 1
        while ((*pstr != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 8015634:	e91301de 	bez      	r19, 0x80159f0	// 80159f0 <_vsnprintf+0xdb0>
          out(*(pstr++), buffer, idx++, maxlen);
 8015638:	c40b4831 	lsli      	r17, r11, 0
 801563c:	9867      	ld.w      	r3, (r14, 0x1c)
        while ((*pstr != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 801563e:	c6230480 	cmpne      	r3, r17
 8015642:	0bec      	bt      	0x801561a	// 801561a <_vsnprintf+0x9da>
        if (flags & FLAGS_LEFT) {
 8015644:	986b      	ld.w      	r3, (r14, 0x2c)
 8015646:	e9030016 	bez      	r3, 0x8015672	// 8015672 <_vsnprintf+0xa32>
          while (l++ < width) {
 801564a:	9868      	ld.w      	r3, (r14, 0x20)
 801564c:	650c      	cmphs      	r3, r4
 801564e:	0812      	bt      	0x8015672	// 8015672 <_vsnprintf+0xa32>
 8015650:	c6240024 	addu      	r4, r4, r17
 8015654:	c464008b 	subu      	r11, r4, r3
 8015658:	c4114822 	lsli      	r2, r17, 0
            out(' ', buffer, idx++, maxlen);
 801565c:	e6310000 	addi      	r17, r17, 1
 8015660:	6cdb      	mov      	r3, r6
 8015662:	6c5f      	mov      	r1, r7
 8015664:	3020      	movi      	r0, 32
 8015666:	7bd5      	jsr      	r5
          while (l++ < width) {
 8015668:	c5710480 	cmpne      	r17, r11
 801566c:	c4114822 	lsli      	r2, r17, 0
 8015670:	0bf6      	bt      	0x801565c	// 801565c <_vsnprintf+0xa1c>
        format++;
 8015672:	e4900000 	addi      	r4, r16, 1
        char *ipv6 = va_arg(va, char*);
 8015676:	d96e2009 	ld.w      	r11, (r14, 0x24)
 801567a:	e800faf5 	br      	0x8014c64	// 8014c64 <_vsnprintf+0x24>
        out('%', buffer, idx++, maxlen);
 801567e:	c4114822 	lsli      	r2, r17, 0
 8015682:	e5310000 	addi      	r9, r17, 1
 8015686:	6cdb      	mov      	r3, r6
 8015688:	6c5f      	mov      	r1, r7
 801568a:	3025      	movi      	r0, 37
 801568c:	7bd5      	jsr      	r5
        format++;
 801568e:	e4900000 	addi      	r4, r16, 1
        out('%', buffer, idx++, maxlen);
 8015692:	c4094831 	lsli      	r17, r9, 0
        break;
 8015696:	e800fae7 	br      	0x8014c64	// 8014c64 <_vsnprintf+0x24>
        const char* p = va_arg(va, char*);
 801569a:	d84b2000 	ld.w      	r2, (r11, 0x0)
 801569e:	e46b0003 	addi      	r3, r11, 4
 80156a2:	b869      	st.w      	r3, (r14, 0x24)
        hbit = (*(inchar + i) & 0xf0) >> 4;
 80156a4:	8260      	ld.b      	r3, (r2, 0x0)
 80156a6:	c4834853 	lsri      	r19, r3, 4
        if (hbit > 9)
 80156aa:	eb130009 	cmphsi      	r19, 10
        lbit = *(inchar + i ) & 0x0f;
 80156ae:	e463200f 	andi      	r3, r3, 15
        if (hbit > 9)
 80156b2:	e8600234 	bt      	0x8015b1a	// 8015b1a <_vsnprintf+0xeda>
            outtxt[3 * i]= '0' + hbit;
 80156b6:	e673002f 	addi      	r19, r19, 48
        if (lbit > 9)
 80156ba:	3b09      	cmphsi      	r3, 10
 80156bc:	de6a0000 	st.b      	r19, (r10, 0x0)
 80156c0:	e860022a 	bt      	0x8015b14	// 8015b14 <_vsnprintf+0xed4>
            outtxt[3 * i + 1] = '0' + lbit;
 80156c4:	232f      	addi      	r3, 48
 80156c6:	dc6a0001 	st.b      	r3, (r10, 0x1)
        outtxt[3 * i + 2] = '-';
 80156ca:	332d      	movi      	r3, 45
 80156cc:	dc6a0002 	st.b      	r3, (r10, 0x2)
        hbit = (*(inchar + i) & 0xf0) >> 4;
 80156d0:	8261      	ld.b      	r3, (r2, 0x1)
 80156d2:	4b24      	lsri      	r1, r3, 4
        if (hbit > 9)
 80156d4:	3909      	cmphsi      	r1, 10
        lbit = *(inchar + i ) & 0x0f;
 80156d6:	e463200f 	andi      	r3, r3, 15
        if (hbit > 9)
 80156da:	e860021a 	bt      	0x8015b0e	// 8015b0e <_vsnprintf+0xece>
            outtxt[3 * i]= '0' + hbit;
 80156de:	212f      	addi      	r1, 48
        if (lbit > 9)
 80156e0:	3b09      	cmphsi      	r3, 10
 80156e2:	dc2a0003 	st.b      	r1, (r10, 0x3)
 80156e6:	e8600211 	bt      	0x8015b08	// 8015b08 <_vsnprintf+0xec8>
            outtxt[3 * i + 1] = '0' + lbit;
 80156ea:	232f      	addi      	r3, 48
 80156ec:	dc6a0004 	st.b      	r3, (r10, 0x4)
        outtxt[3 * i + 2] = '-';
 80156f0:	332d      	movi      	r3, 45
 80156f2:	dc6a0005 	st.b      	r3, (r10, 0x5)
        hbit = (*(inchar + i) & 0xf0) >> 4;
 80156f6:	8262      	ld.b      	r3, (r2, 0x2)
 80156f8:	4b24      	lsri      	r1, r3, 4
        if (hbit > 9)
 80156fa:	3909      	cmphsi      	r1, 10
        lbit = *(inchar + i ) & 0x0f;
 80156fc:	e463200f 	andi      	r3, r3, 15
        if (hbit > 9)
 8015700:	e8600202 	bt      	0x8015b04	// 8015b04 <_vsnprintf+0xec4>
            outtxt[3 * i]= '0' + hbit;
 8015704:	212f      	addi      	r1, 48
        if (lbit > 9)
 8015706:	3b09      	cmphsi      	r3, 10
 8015708:	dc2a0006 	st.b      	r1, (r10, 0x6)
 801570c:	09fa      	bt      	0x8015b00	// 8015b00 <_vsnprintf+0xec0>
            outtxt[3 * i + 1] = '0' + lbit;
 801570e:	232f      	addi      	r3, 48
 8015710:	dc6a0007 	st.b      	r3, (r10, 0x7)
        outtxt[3 * i + 2] = '-';
 8015714:	332d      	movi      	r3, 45
 8015716:	dc6a0008 	st.b      	r3, (r10, 0x8)
        hbit = (*(inchar + i) & 0xf0) >> 4;
 801571a:	8263      	ld.b      	r3, (r2, 0x3)
 801571c:	4b24      	lsri      	r1, r3, 4
        if (hbit > 9)
 801571e:	3909      	cmphsi      	r1, 10
        lbit = *(inchar + i ) & 0x0f;
 8015720:	e463200f 	andi      	r3, r3, 15
        if (hbit > 9)
 8015724:	09ec      	bt      	0x8015afc	// 8015afc <_vsnprintf+0xebc>
            outtxt[3 * i]= '0' + hbit;
 8015726:	212f      	addi      	r1, 48
        if (lbit > 9)
 8015728:	3b09      	cmphsi      	r3, 10
 801572a:	dc2a0009 	st.b      	r1, (r10, 0x9)
 801572e:	09e5      	bt      	0x8015af8	// 8015af8 <_vsnprintf+0xeb8>
            outtxt[3 * i + 1] = '0' + lbit;
 8015730:	232f      	addi      	r3, 48
 8015732:	dc6a000a 	st.b      	r3, (r10, 0xa)
        outtxt[3 * i + 2] = '-';
 8015736:	332d      	movi      	r3, 45
 8015738:	dc6a000b 	st.b      	r3, (r10, 0xb)
        hbit = (*(inchar + i) & 0xf0) >> 4;
 801573c:	8264      	ld.b      	r3, (r2, 0x4)
 801573e:	4b24      	lsri      	r1, r3, 4
        if (hbit > 9)
 8015740:	3909      	cmphsi      	r1, 10
        lbit = *(inchar + i ) & 0x0f;
 8015742:	e463200f 	andi      	r3, r3, 15
        if (hbit > 9)
 8015746:	09d7      	bt      	0x8015af4	// 8015af4 <_vsnprintf+0xeb4>
            outtxt[3 * i]= '0' + hbit;
 8015748:	212f      	addi      	r1, 48
        if (lbit > 9)
 801574a:	3b09      	cmphsi      	r3, 10
 801574c:	dc2a000c 	st.b      	r1, (r10, 0xc)
 8015750:	09d0      	bt      	0x8015af0	// 8015af0 <_vsnprintf+0xeb0>
            outtxt[3 * i + 1] = '0' + lbit;
 8015752:	232f      	addi      	r3, 48
 8015754:	dc6a000d 	st.b      	r3, (r10, 0xd)
        outtxt[3 * i + 2] = '-';
 8015758:	332d      	movi      	r3, 45
 801575a:	dc6a000e 	st.b      	r3, (r10, 0xe)
        hbit = (*(inchar + i) & 0xf0) >> 4;
 801575e:	8265      	ld.b      	r3, (r2, 0x5)
 8015760:	4b44      	lsri      	r2, r3, 4
        if (hbit > 9)
 8015762:	3a09      	cmphsi      	r2, 10
        lbit = *(inchar + i ) & 0x0f;
 8015764:	e463200f 	andi      	r3, r3, 15
        if (hbit > 9)
 8015768:	09c2      	bt      	0x8015aec	// 8015aec <_vsnprintf+0xeac>
            outtxt[3 * i]= '0' + hbit;
 801576a:	222f      	addi      	r2, 48
        if (lbit > 9)
 801576c:	3b09      	cmphsi      	r3, 10
 801576e:	dc4a000f 	st.b      	r2, (r10, 0xf)
 8015772:	09bb      	bt      	0x8015ae8	// 8015ae8 <_vsnprintf+0xea8>
            outtxt[3 * i + 1] = '0' + lbit;
 8015774:	232f      	addi      	r3, 48
 8015776:	dc6a0010 	st.b      	r3, (r10, 0x10)
    outtxt[3 * (i - 1) + 2] = 0;
 801577a:	3300      	movi      	r3, 0
 801577c:	dc6a0011 	st.b      	r3, (r10, 0x11)
        if (flags & FLAGS_PRECISION) {
 8015780:	e4722400 	andi      	r3, r18, 1024
 8015784:	b86a      	st.w      	r3, (r14, 0x28)
 8015786:	e903015d 	bez      	r3, 0x8015a40	// 8015a40 <_vsnprintf+0xe00>
          l = (l < precision ? l : precision);
 801578a:	ea0b0011 	movi      	r11, 17
 801578e:	f969cd23 	min.u32      	r3, r9, r11
 8015792:	b868      	st.w      	r3, (r14, 0x20)
        if (!(flags & FLAGS_LEFT)) {
 8015794:	e4722002 	andi      	r3, r18, 2
 8015798:	b86b      	st.w      	r3, (r14, 0x2c)
 801579a:	e923001f 	bnez      	r3, 0x80157d8	// 80157d8 <_vsnprintf+0xb98>
          while (l++ < width) {
 801579e:	9848      	ld.w      	r2, (r14, 0x20)
 80157a0:	6508      	cmphs      	r2, r4
 80157a2:	6ccb      	mov      	r3, r2
 80157a4:	2300      	addi      	r3, 1
 80157a6:	e86004bc 	bt      	0x801611e	// 801611e <_vsnprintf+0x14de>
 80157aa:	c6240023 	addu      	r3, r4, r17
 80157ae:	c443008b 	subu      	r11, r3, r2
 80157b2:	c4114822 	lsli      	r2, r17, 0
 80157b6:	de6e2007 	st.w      	r19, (r14, 0x1c)
            out(' ', buffer, idx++, maxlen);
 80157ba:	e6310000 	addi      	r17, r17, 1
 80157be:	6cdb      	mov      	r3, r6
 80157c0:	6c5f      	mov      	r1, r7
 80157c2:	3020      	movi      	r0, 32
 80157c4:	7bd5      	jsr      	r5
          while (l++ < width) {
 80157c6:	c5710480 	cmpne      	r17, r11
 80157ca:	c4114822 	lsli      	r2, r17, 0
 80157ce:	da6e2007 	ld.w      	r19, (r14, 0x1c)
 80157d2:	0bf2      	bt      	0x80157b6	// 80157b6 <_vsnprintf+0xb76>
 80157d4:	5c62      	addi      	r3, r4, 1
 80157d6:	b868      	st.w      	r3, (r14, 0x20)
 80157d8:	986a      	ld.w      	r3, (r14, 0x28)
 80157da:	e903010e 	bez      	r3, 0x80159f6	// 80159f6 <_vsnprintf+0xdb6>
 80157de:	c6290023 	addu      	r3, r9, r17
 80157e2:	b867      	st.w      	r3, (r14, 0x1c)
 80157e4:	6e6b      	mov      	r9, r10
 80157e6:	0413      	br      	0x801580c	// 801580c <_vsnprintf+0xbcc>
          out(*(pstr++), buffer, idx++, maxlen);
 80157e8:	e5290000 	addi      	r9, r9, 1
 80157ec:	c4134820 	lsli      	r0, r19, 0
 80157f0:	6cdb      	mov      	r3, r6
 80157f2:	c4114822 	lsli      	r2, r17, 0
 80157f6:	6c5f      	mov      	r1, r7
 80157f8:	7bd5      	jsr      	r5
        while ((*pstr != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 80157fa:	da690000 	ld.b      	r19, (r9, 0x0)
          out(*(pstr++), buffer, idx++, maxlen);
 80157fe:	e5710000 	addi      	r11, r17, 1
        while ((*pstr != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 8015802:	e913010c 	bez      	r19, 0x8015a1a	// 8015a1a <_vsnprintf+0xdda>
          out(*(pstr++), buffer, idx++, maxlen);
 8015806:	c40b4831 	lsli      	r17, r11, 0
 801580a:	9867      	ld.w      	r3, (r14, 0x1c)
        while ((*pstr != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 801580c:	c6230480 	cmpne      	r3, r17
 8015810:	0bec      	bt      	0x80157e8	// 80157e8 <_vsnprintf+0xba8>
        if (flags & FLAGS_LEFT) {
 8015812:	986b      	ld.w      	r3, (r14, 0x2c)
 8015814:	e903ff2f 	bez      	r3, 0x8015672	// 8015672 <_vsnprintf+0xa32>
          while (l++ < width) {
 8015818:	9868      	ld.w      	r3, (r14, 0x20)
 801581a:	650c      	cmphs      	r3, r4
 801581c:	0b2b      	bt      	0x8015672	// 8015672 <_vsnprintf+0xa32>
 801581e:	c6240024 	addu      	r4, r4, r17
 8015822:	c464008b 	subu      	r11, r4, r3
 8015826:	c4114822 	lsli      	r2, r17, 0
            out(' ', buffer, idx++, maxlen);
 801582a:	e6310000 	addi      	r17, r17, 1
 801582e:	6cdb      	mov      	r3, r6
 8015830:	6c5f      	mov      	r1, r7
 8015832:	3020      	movi      	r0, 32
 8015834:	7bd5      	jsr      	r5
          while (l++ < width) {
 8015836:	c5710480 	cmpne      	r17, r11
 801583a:	c4114822 	lsli      	r2, r17, 0
 801583e:	0bf6      	bt      	0x801582a	// 801582a <_vsnprintf+0xbea>
        format++;
 8015840:	e4900000 	addi      	r4, r16, 1
        char *ipv6 = va_arg(va, char*);
 8015844:	d96e2009 	ld.w      	r11, (r14, 0x24)
 8015848:	e800fa0e 	br      	0x8014c64	// 8014c64 <_vsnprintf+0x24>
        if (*format == 'F') flags |= FLAGS_UPPERCASE;
 801584c:	eb400046 	cmpnei      	r0, 70
 8015850:	e84002a1 	bf      	0x8015d92	// 8015d92 <_vsnprintf+0x1152>
        idx = _ftoa(out, buffer, idx, maxlen, va_arg(va, double), precision, width, flags);
 8015854:	de4e2004 	st.w      	r18, (r14, 0x10)
 8015858:	b883      	st.w      	r4, (r14, 0xc)
 801585a:	dd2e2002 	st.w      	r9, (r14, 0x8)
 801585e:	d86b2000 	ld.w      	r3, (r11, 0x0)
 8015862:	d88b2001 	ld.w      	r4, (r11, 0x4)
 8015866:	e66b0007 	addi      	r19, r11, 8
 801586a:	b860      	st.w      	r3, (r14, 0x0)
 801586c:	b881      	st.w      	r4, (r14, 0x4)
 801586e:	c4114822 	lsli      	r2, r17, 0
 8015872:	6cdb      	mov      	r3, r6
 8015874:	6c5f      	mov      	r1, r7
 8015876:	6c17      	mov      	r0, r5
 8015878:	de6e2007 	st.w      	r19, (r14, 0x1c)
 801587c:	e3fff6b8 	bsr      	0x80145ec	// 80145ec <_ftoa>
 8015880:	da6e2007 	ld.w      	r19, (r14, 0x1c)
 8015884:	c4004831 	lsli      	r17, r0, 0
        format++;
 8015888:	e4900000 	addi      	r4, r16, 1
        idx = _ftoa(out, buffer, idx, maxlen, va_arg(va, double), precision, width, flags);
 801588c:	c413482b 	lsli      	r11, r19, 0
        break;
 8015890:	e800f9ea 	br      	0x8014c64	// 8014c64 <_vsnprintf+0x24>
        if ((*format == 'g')||(*format == 'G')) flags |= FLAGS_ADAPT_EXP;
 8015894:	e46020df 	andi      	r3, r0, 223
 8015898:	eb430047 	cmpnei      	r3, 71
 801589c:	0805      	bt      	0x80158a6	// 80158a6 <_vsnprintf+0xc66>
 801589e:	ee520800 	ori      	r18, r18, 2048
        if ((*format == 'E')||(*format == 'G')) flags |= FLAGS_UPPERCASE;
 80158a2:	e40020fd 	andi      	r0, r0, 253
 80158a6:	eb400045 	cmpnei      	r0, 69
 80158aa:	0803      	bt      	0x80158b0	// 80158b0 <_vsnprintf+0xc70>
 80158ac:	ee520020 	ori      	r18, r18, 32
        idx = _etoa(out, buffer, idx, maxlen, va_arg(va, double), precision, width, flags);
 80158b0:	da6b2000 	ld.w      	r19, (r11, 0x0)
 80158b4:	e46b0007 	addi      	r3, r11, 8
 80158b8:	d96b2001 	ld.w      	r11, (r11, 0x4)
 80158bc:	b867      	st.w      	r3, (r14, 0x1c)
  if ((value != value) || (value > DBL_MAX) || (value < -DBL_MAX)) {
 80158be:	c4134822 	lsli      	r2, r19, 0
 80158c2:	c4134820 	lsli      	r0, r19, 0
 80158c6:	6cef      	mov      	r3, r11
 80158c8:	6c6f      	mov      	r1, r11
 80158ca:	de4e2009 	st.w      	r18, (r14, 0x24)
 80158ce:	de6e2008 	st.w      	r19, (r14, 0x20)
 80158d2:	e3ffdcf1 	bsr      	0x80112b4	// 80112b4 <__nedf2>
 80158d6:	da6e2008 	ld.w      	r19, (r14, 0x20)
 80158da:	da4e2009 	ld.w      	r18, (r14, 0x24)
 80158de:	e920004c 	bnez      	r0, 0x8015976	// 8015976 <_vsnprintf+0xd36>
 80158e2:	3200      	movi      	r2, 0
 80158e4:	ea237ff0 	movih      	r3, 32752
 80158e8:	c4134820 	lsli      	r0, r19, 0
 80158ec:	2a00      	subi      	r2, 1
 80158ee:	2b00      	subi      	r3, 1
 80158f0:	6c6f      	mov      	r1, r11
 80158f2:	e3ffdcfd 	bsr      	0x80112ec	// 80112ec <__gtdf2>
 80158f6:	da6e2008 	ld.w      	r19, (r14, 0x20)
 80158fa:	da4e2009 	ld.w      	r18, (r14, 0x24)
 80158fe:	e940003c 	bhz      	r0, 0x8015976	// 8015976 <_vsnprintf+0xd36>
 8015902:	3200      	movi      	r2, 0
 8015904:	ea23fff0 	movih      	r3, 65520
 8015908:	c4134820 	lsli      	r0, r19, 0
 801590c:	2a00      	subi      	r2, 1
 801590e:	2b00      	subi      	r3, 1
 8015910:	6c6f      	mov      	r1, r11
 8015912:	e3ffdd2d 	bsr      	0x801136c	// 801136c <__ltdf2>
 8015916:	da6e2008 	ld.w      	r19, (r14, 0x20)
 801591a:	da4e2009 	ld.w      	r18, (r14, 0x24)
 801591e:	e980002c 	blz      	r0, 0x8015976	// 8015976 <_vsnprintf+0xd36>
 8015922:	c4114822 	lsli      	r2, r17, 0
 8015926:	de4e2004 	st.w      	r18, (r14, 0x10)
 801592a:	b883      	st.w      	r4, (r14, 0xc)
 801592c:	dd2e2002 	st.w      	r9, (r14, 0x8)
 8015930:	de6e2000 	st.w      	r19, (r14, 0x0)
 8015934:	dd6e2001 	st.w      	r11, (r14, 0x4)
 8015938:	6cdb      	mov      	r3, r6
 801593a:	6c5f      	mov      	r1, r7
 801593c:	6c17      	mov      	r0, r5
 801593e:	e3fff12d 	bsr      	0x8013b98	// 8013b98 <_etoa.part.0>
 8015942:	c4004831 	lsli      	r17, r0, 0
 8015946:	042a      	br      	0x801599a	// 801599a <_vsnprintf+0xd5a>
          out(*(p++), buffer, idx++, maxlen);
 8015948:	e6730000 	addi      	r19, r19, 1
 801594c:	c4134829 	lsli      	r9, r19, 0
 8015950:	c4114822 	lsli      	r2, r17, 0
 8015954:	6cdb      	mov      	r3, r6
 8015956:	6c5f      	mov      	r1, r7
 8015958:	7bd5      	jsr      	r5
        while ((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 801595a:	d8090000 	ld.b      	r0, (r9, 0x0)
          out(*(p++), buffer, idx++, maxlen);
 801595e:	e5710000 	addi      	r11, r17, 1
        while ((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 8015962:	c4094833 	lsli      	r19, r9, 0
          out(*(p++), buffer, idx++, maxlen);
 8015966:	c40b4831 	lsli      	r17, r11, 0
        while ((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 801596a:	e920ffef 	bnez      	r0, 0x8015948	// 8015948 <_vsnprintf+0xd08>
          out(*(p++), buffer, idx++, maxlen);
 801596e:	c40b4831 	lsli      	r17, r11, 0
 8015972:	e800fbfa 	br      	0x8015166	// 8015166 <_vsnprintf+0x526>
    return _ftoa(out, buffer, idx, maxlen, value, prec, width, flags);
 8015976:	c4114822 	lsli      	r2, r17, 0
 801597a:	de4e2004 	st.w      	r18, (r14, 0x10)
 801597e:	b883      	st.w      	r4, (r14, 0xc)
 8015980:	dd2e2002 	st.w      	r9, (r14, 0x8)
 8015984:	de6e2000 	st.w      	r19, (r14, 0x0)
 8015988:	dd6e2001 	st.w      	r11, (r14, 0x4)
 801598c:	6cdb      	mov      	r3, r6
 801598e:	6c5f      	mov      	r1, r7
 8015990:	6c17      	mov      	r0, r5
 8015992:	e3fff62d 	bsr      	0x80145ec	// 80145ec <_ftoa>
 8015996:	c4004831 	lsli      	r17, r0, 0
        format++;
 801599a:	e4900000 	addi      	r4, r16, 1
        idx = _etoa(out, buffer, idx, maxlen, va_arg(va, double), precision, width, flags);
 801599e:	d96e2007 	ld.w      	r11, (r14, 0x1c)
        break;
 80159a2:	e800f961 	br      	0x8014c64	// 8014c64 <_vsnprintf+0x24>
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 80159a6:	2236      	addi      	r2, 55
 80159a8:	e800fc12 	br      	0x80151cc	// 80151cc <_vsnprintf+0x58c>
 80159ac:	c4114822 	lsli      	r2, r17, 0
 80159b0:	e800f972 	br      	0x8014c94	// 8014c94 <_vsnprintf+0x54>
      const int w = va_arg(va, int);
 80159b4:	d88b2000 	ld.w      	r4, (r11, 0x0)
 80159b8:	e46b0003 	addi      	r3, r11, 4
      if (w < 0) {
 80159bc:	e9840208 	blz      	r4, 0x8015dcc	// 8015dcc <_vsnprintf+0x118c>
 80159c0:	8201      	ld.b      	r0, (r2, 0x1)
      const int w = va_arg(va, int);
 80159c2:	6ecf      	mov      	r11, r3
      format++;
 80159c4:	e6020000 	addi      	r16, r2, 1
 80159c8:	e800f9a0 	br      	0x8014d08	// 8014d08 <_vsnprintf+0xc8>
          out(*(pstr++), buffer, idx++, maxlen);
 80159cc:	6e6b      	mov      	r9, r10
 80159ce:	e5290000 	addi      	r9, r9, 1
 80159d2:	c4114822 	lsli      	r2, r17, 0
 80159d6:	c4134820 	lsli      	r0, r19, 0
 80159da:	6cdb      	mov      	r3, r6
 80159dc:	6c5f      	mov      	r1, r7
 80159de:	7bd5      	jsr      	r5
        while ((*pstr != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 80159e0:	da690000 	ld.b      	r19, (r9, 0x0)
          out(*(pstr++), buffer, idx++, maxlen);
 80159e4:	e5710000 	addi      	r11, r17, 1
 80159e8:	c40b4831 	lsli      	r17, r11, 0
        while ((*pstr != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 80159ec:	e933fff1 	bnez      	r19, 0x80159ce	// 80159ce <_vsnprintf+0xd8e>
          out(*(pstr++), buffer, idx++, maxlen);
 80159f0:	c40b4831 	lsli      	r17, r11, 0
 80159f4:	0628      	br      	0x8015644	// 8015644 <_vsnprintf+0xa04>
          out(*(pstr++), buffer, idx++, maxlen);
 80159f6:	6e6b      	mov      	r9, r10
 80159f8:	e5290000 	addi      	r9, r9, 1
 80159fc:	c4114822 	lsli      	r2, r17, 0
 8015a00:	c4134820 	lsli      	r0, r19, 0
 8015a04:	6cdb      	mov      	r3, r6
 8015a06:	6c5f      	mov      	r1, r7
 8015a08:	7bd5      	jsr      	r5
        while ((*pstr != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 8015a0a:	da690000 	ld.b      	r19, (r9, 0x0)
          out(*(pstr++), buffer, idx++, maxlen);
 8015a0e:	e5710000 	addi      	r11, r17, 1
 8015a12:	c40b4831 	lsli      	r17, r11, 0
        while ((*pstr != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 8015a16:	e933fff1 	bnez      	r19, 0x80159f8	// 80159f8 <_vsnprintf+0xdb8>
          out(*(pstr++), buffer, idx++, maxlen);
 8015a1a:	c40b4831 	lsli      	r17, r11, 0
 8015a1e:	06fa      	br      	0x8015812	// 8015812 <_vsnprintf+0xbd2>
 8015a20:	d8100002 	ld.b      	r0, (r16, 0x2)
          flags |= FLAGS_LONG_LONG;
 8015a24:	ee520300 	ori      	r18, r18, 768
          format++;
 8015a28:	e6100001 	addi      	r16, r16, 2
 8015a2c:	e800f984 	br      	0x8014d34	// 8014d34 <_vsnprintf+0xf4>
 8015a30:	d8100002 	ld.b      	r0, (r16, 0x2)
          flags |= FLAGS_CHAR;
 8015a34:	ee5200c0 	ori      	r18, r18, 192
          format++;
 8015a38:	e6100001 	addi      	r16, r16, 2
 8015a3c:	e800f97c 	br      	0x8014d34	// 8014d34 <_vsnprintf+0xf4>
        unsigned int l = __mac2str((unsigned char *)p, store);
 8015a40:	3311      	movi      	r3, 17
 8015a42:	b868      	st.w      	r3, (r14, 0x20)
 8015a44:	06a8      	br      	0x8015794	// 8015794 <_vsnprintf+0xb54>
    flags &= ~FLAGS_HASH;
 8015a46:	c4922835 	bclri      	r21, r18, 4
  if (!(flags & FLAGS_PRECISION) || value) {
 8015a4a:	e6522400 	andi      	r18, r18, 1024
    flags &= ~FLAGS_HASH;
 8015a4e:	eeb50021 	ori      	r21, r21, 33
  if (!(flags & FLAGS_PRECISION) || value) {
 8015a52:	e912fbaf 	bez      	r18, 0x80151b0	// 80151b0 <_vsnprintf+0x570>
  size_t len = 0U;
 8015a56:	c4034834 	lsli      	r20, r3, 0
 8015a5a:	e800fbc0 	br      	0x80151da	// 80151da <_vsnprintf+0x59a>
        unsigned int l = __ip2str(6, (unsigned int *)ipv6, store);
 8015a5e:	3327      	movi      	r3, 39
 8015a60:	b868      	st.w      	r3, (r14, 0x20)
 8015a62:	e800fdb2 	br      	0x80155c6	// 80155c6 <_vsnprintf+0x986>
        while ((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 8015a66:	e920fb64 	bnez      	r0, 0x801512e	// 801512e <_vsnprintf+0x4ee>
 8015a6a:	e800fb81 	br      	0x801516c	// 801516c <_vsnprintf+0x52c>
            m = (bit % 100) / 10;
 8015a6e:	c6618421 	mult      	r1, r1, r19
 8015a72:	60c6      	subu      	r3, r1
 8015a74:	74cc      	zextb      	r3, r3
 8015a76:	ea15000a 	movi      	r21, 10
 8015a7a:	c6a38035 	divu      	r21, r3, r21
            if (m)
 8015a7e:	e91500b3 	bez      	r21, 0x8015be4	// 8015be4 <_vsnprintf+0xfa4>
 8015a82:	ea130003 	movi      	r19, 3
 8015a86:	ea160001 	movi      	r22, 1
 8015a8a:	ea170002 	movi      	r23, 2
 8015a8e:	c4134820 	lsli      	r0, r19, 0
 8015a92:	c40a4834 	lsli      	r20, r10, 0
 8015a96:	c4164821 	lsli      	r1, r22, 0
 8015a9a:	e800f9e6 	br      	0x8014e66	// 8014e66 <_vsnprintf+0x226>
        out((char)va_arg(va, int), buffer, idx++, maxlen);
 8015a9e:	e6510000 	addi      	r18, r17, 1
 8015aa2:	de4e2007 	st.w      	r18, (r14, 0x1c)
 8015aa6:	6cdb      	mov      	r3, r6
 8015aa8:	c4114822 	lsli      	r2, r17, 0
 8015aac:	6c5f      	mov      	r1, r7
 8015aae:	d80b0000 	ld.b      	r0, (r11, 0x0)
 8015ab2:	7bd5      	jsr      	r5
          while (l++ < width) {
 8015ab4:	3c01      	cmphsi      	r4, 2
        out((char)va_arg(va, int), buffer, idx++, maxlen);
 8015ab6:	e52b0003 	addi      	r9, r11, 4
          while (l++ < width) {
 8015aba:	da4e2007 	ld.w      	r18, (r14, 0x1c)
 8015abe:	e8400336 	bf      	0x801612a	// 801612a <_vsnprintf+0x14ea>
 8015ac2:	c6240024 	addu      	r4, r4, r17
            out(' ', buffer, idx++, maxlen);
 8015ac6:	e5720000 	addi      	r11, r18, 1
 8015aca:	c4124822 	lsli      	r2, r18, 0
 8015ace:	6cdb      	mov      	r3, r6
 8015ad0:	6c5f      	mov      	r1, r7
 8015ad2:	3020      	movi      	r0, 32
 8015ad4:	7bd5      	jsr      	r5
          while (l++ < width) {
 8015ad6:	652e      	cmpne      	r11, r4
 8015ad8:	c40b4832 	lsli      	r18, r11, 0
 8015adc:	0bf5      	bt      	0x8015ac6	// 8015ac6 <_vsnprintf+0xe86>
 8015ade:	c40b4831 	lsli      	r17, r11, 0
        out((char)va_arg(va, int), buffer, idx++, maxlen);
 8015ae2:	6ee7      	mov      	r11, r9
 8015ae4:	e800fbb7 	br      	0x8015252	// 8015252 <_vsnprintf+0x612>
            outtxt[3 * i + 1] = 'A' + lbit - 10;
 8015ae8:	2336      	addi      	r3, 55
 8015aea:	0646      	br      	0x8015776	// 8015776 <_vsnprintf+0xb36>
            outtxt[3 * i] = 'A' + hbit - 10;
 8015aec:	2236      	addi      	r2, 55
 8015aee:	063f      	br      	0x801576c	// 801576c <_vsnprintf+0xb2c>
            outtxt[3 * i + 1] = 'A' + lbit - 10;
 8015af0:	2336      	addi      	r3, 55
 8015af2:	0631      	br      	0x8015754	// 8015754 <_vsnprintf+0xb14>
            outtxt[3 * i] = 'A' + hbit - 10;
 8015af4:	2136      	addi      	r1, 55
 8015af6:	062a      	br      	0x801574a	// 801574a <_vsnprintf+0xb0a>
            outtxt[3 * i + 1] = 'A' + lbit - 10;
 8015af8:	2336      	addi      	r3, 55
 8015afa:	061c      	br      	0x8015732	// 8015732 <_vsnprintf+0xaf2>
            outtxt[3 * i] = 'A' + hbit - 10;
 8015afc:	2136      	addi      	r1, 55
 8015afe:	0615      	br      	0x8015728	// 8015728 <_vsnprintf+0xae8>
            outtxt[3 * i + 1] = 'A' + lbit - 10;
 8015b00:	2336      	addi      	r3, 55
 8015b02:	0607      	br      	0x8015710	// 8015710 <_vsnprintf+0xad0>
            outtxt[3 * i] = 'A' + hbit - 10;
 8015b04:	2136      	addi      	r1, 55
 8015b06:	0600      	br      	0x8015706	// 8015706 <_vsnprintf+0xac6>
            outtxt[3 * i + 1] = 'A' + lbit - 10;
 8015b08:	2336      	addi      	r3, 55
 8015b0a:	e800fdf1 	br      	0x80156ec	// 80156ec <_vsnprintf+0xaac>
            outtxt[3 * i] = 'A' + hbit - 10;
 8015b0e:	2136      	addi      	r1, 55
 8015b10:	e800fde8 	br      	0x80156e0	// 80156e0 <_vsnprintf+0xaa0>
            outtxt[3 * i + 1] = 'A' + lbit - 10;
 8015b14:	2336      	addi      	r3, 55
 8015b16:	e800fdd8 	br      	0x80156c6	// 80156c6 <_vsnprintf+0xa86>
            outtxt[3 * i] = 'A' + hbit - 10;
 8015b1a:	e6730036 	addi      	r19, r19, 55
 8015b1e:	e800fdce 	br      	0x80156ba	// 80156ba <_vsnprintf+0xa7a>
                    outtxt[j++] = '0' + l;
 8015b22:	232f      	addi      	r3, 48
 8015b24:	e800fd42 	br      	0x80155a8	// 80155a8 <_vsnprintf+0x968>
                    outtxt[j++] = 'A' + h - 10;
 8015b28:	2236      	addi      	r2, 55
 8015b2a:	e800fd38 	br      	0x801559a	// 801559a <_vsnprintf+0x95a>
                    outtxt[j++] = '0' + l;
 8015b2e:	222f      	addi      	r2, 48
 8015b30:	e800fd2b 	br      	0x8015586	// 8015586 <_vsnprintf+0x946>
                    outtxt[j++] = 'A' + h - 10;
 8015b34:	2136      	addi      	r1, 55
 8015b36:	e800fd21 	br      	0x8015578	// 8015578 <_vsnprintf+0x938>
                    outtxt[j++] = '0' + l;
 8015b3a:	222f      	addi      	r2, 48
 8015b3c:	e800fd10 	br      	0x801555c	// 801555c <_vsnprintf+0x91c>
                    outtxt[j++] = 'A' + h - 10;
 8015b40:	2136      	addi      	r1, 55
 8015b42:	e800fd06 	br      	0x801554e	// 801554e <_vsnprintf+0x90e>
                    outtxt[j++] = '0' + l;
 8015b46:	222f      	addi      	r2, 48
 8015b48:	e800fcf8 	br      	0x8015538	// 8015538 <_vsnprintf+0x8f8>
                    outtxt[j++] = 'A' + h - 10;
 8015b4c:	2136      	addi      	r1, 55
 8015b4e:	e800fcee 	br      	0x801552a	// 801552a <_vsnprintf+0x8ea>
                    outtxt[j++] = '0' + l;
 8015b52:	232f      	addi      	r3, 48
 8015b54:	e800fcdd 	br      	0x801550e	// 801550e <_vsnprintf+0x8ce>
                    outtxt[j++] = 'A' + h - 10;
 8015b58:	2136      	addi      	r1, 55
 8015b5a:	e800fcd3 	br      	0x8015500	// 8015500 <_vsnprintf+0x8c0>
                    outtxt[j++] = '0' + l;
 8015b5e:	212f      	addi      	r1, 48
 8015b60:	e800fcc6 	br      	0x80154ec	// 80154ec <_vsnprintf+0x8ac>
                    outtxt[j++] = 'A' + h - 10;
 8015b64:	2036      	addi      	r0, 55
 8015b66:	e800fcbc 	br      	0x80154de	// 80154de <_vsnprintf+0x89e>
                    outtxt[j++] = '0' + l;
 8015b6a:	212f      	addi      	r1, 48
 8015b6c:	e800fcab 	br      	0x80154c2	// 80154c2 <_vsnprintf+0x882>
                    outtxt[j++] = 'A' + h - 10;
 8015b70:	2036      	addi      	r0, 55
 8015b72:	e800fca1 	br      	0x80154b4	// 80154b4 <_vsnprintf+0x874>
                    outtxt[j++] = '0' + l;
 8015b76:	212f      	addi      	r1, 48
 8015b78:	e800fc93 	br      	0x801549e	// 801549e <_vsnprintf+0x85e>
                    outtxt[j++] = 'A' + h - 10;
 8015b7c:	2036      	addi      	r0, 55
 8015b7e:	e800fc89 	br      	0x8015490	// 8015490 <_vsnprintf+0x850>
                    outtxt[j++] = '0' + l;
 8015b82:	232f      	addi      	r3, 48
 8015b84:	e800fc78 	br      	0x8015474	// 8015474 <_vsnprintf+0x834>
                    outtxt[j++] = 'A' + h - 10;
 8015b88:	2136      	addi      	r1, 55
 8015b8a:	e800fc6e 	br      	0x8015466	// 8015466 <_vsnprintf+0x826>
                    outtxt[j++] = '0' + l;
 8015b8e:	212f      	addi      	r1, 48
 8015b90:	e800fc61 	br      	0x8015452	// 8015452 <_vsnprintf+0x812>
                    outtxt[j++] = 'A' + h - 10;
 8015b94:	2036      	addi      	r0, 55
 8015b96:	e800fc57 	br      	0x8015444	// 8015444 <_vsnprintf+0x804>
                    outtxt[j++] = '0' + l;
 8015b9a:	212f      	addi      	r1, 48
 8015b9c:	e800fc46 	br      	0x8015428	// 8015428 <_vsnprintf+0x7e8>
                    outtxt[j++] = 'A' + h - 10;
 8015ba0:	2036      	addi      	r0, 55
 8015ba2:	e800fc3c 	br      	0x801541a	// 801541a <_vsnprintf+0x7da>
                    outtxt[j++] = '0' + l;
 8015ba6:	212f      	addi      	r1, 48
 8015ba8:	e800fc2e 	br      	0x8015404	// 8015404 <_vsnprintf+0x7c4>
                    outtxt[j++] = 'A' + h - 10;
 8015bac:	2036      	addi      	r0, 55
 8015bae:	e800fc24 	br      	0x80153f6	// 80153f6 <_vsnprintf+0x7b6>
                    outtxt[j++] = '0' + l;
 8015bb2:	232f      	addi      	r3, 48
 8015bb4:	e800fc13 	br      	0x80153da	// 80153da <_vsnprintf+0x79a>
                    outtxt[j++] = 'A' + h - 10;
 8015bb8:	2136      	addi      	r1, 55
 8015bba:	e800fc09 	br      	0x80153cc	// 80153cc <_vsnprintf+0x78c>
                    outtxt[j++] = '0' + l;
 8015bbe:	212f      	addi      	r1, 48
 8015bc0:	e800fbfc 	br      	0x80153b8	// 80153b8 <_vsnprintf+0x778>
                    outtxt[j++] = 'A' + h - 10;
 8015bc4:	2036      	addi      	r0, 55
 8015bc6:	e800fbf2 	br      	0x80153aa	// 80153aa <_vsnprintf+0x76a>
                    outtxt[j++] = '0' + l;
 8015bca:	212f      	addi      	r1, 48
 8015bcc:	e800fbe1 	br      	0x801538e	// 801538e <_vsnprintf+0x74e>
                    outtxt[j++] = 'A' + h - 10;
 8015bd0:	2036      	addi      	r0, 55
 8015bd2:	e800fbd7 	br      	0x8015380	// 8015380 <_vsnprintf+0x740>
                    outtxt[j++] = '0' + l;
 8015bd6:	212f      	addi      	r1, 48
 8015bd8:	e800fbc9 	br      	0x801536a	// 801536a <_vsnprintf+0x72a>
                    outtxt[j++] = 'A' + h - 10;
 8015bdc:	e6730036 	addi      	r19, r19, 55
 8015be0:	e800fbbe 	br      	0x801535c	// 801535c <_vsnprintf+0x71c>
            if (m)
 8015be4:	ea130002 	movi      	r19, 2
 8015be8:	ea170001 	movi      	r23, 1
 8015bec:	c4134820 	lsli      	r0, r19, 0
 8015bf0:	c40a4836 	lsli      	r22, r10, 0
 8015bf4:	e800f941 	br      	0x8014e76	// 8014e76 <_vsnprintf+0x236>
                    outtxt[j++] = '0';
 8015bf8:	3130      	movi      	r1, 48
 8015bfa:	ea130004 	movi      	r19, 4
 8015bfe:	dc2a0001 	st.b      	r1, (r10, 0x1)
 8015c02:	ea170003 	movi      	r23, 3
 8015c06:	c4134820 	lsli      	r0, r19, 0
 8015c0a:	e6ce003d 	addi      	r22, r14, 62
 8015c0e:	ea150002 	movi      	r21, 2
 8015c12:	e800f932 	br      	0x8014e76	// 8014e76 <_vsnprintf+0x236>
          base =  8U;
 8015c16:	ea130008 	movi      	r19, 8
          flags &= ~(FLAGS_PLUS | FLAGS_SPACE);
 8015c1a:	c4522823 	bclri      	r3, r18, 2
 8015c1e:	3b83      	bclri      	r3, 3
        if (flags & FLAGS_PRECISION) {
 8015c20:	e6522400 	andi      	r18, r18, 1024
          flags &= ~(FLAGS_PLUS | FLAGS_SPACE);
 8015c24:	b867      	st.w      	r3, (r14, 0x1c)
        if (flags & FLAGS_PRECISION) {
 8015c26:	e912fb39 	bez      	r18, 0x8015298	// 8015298 <_vsnprintf+0x658>
 8015c2a:	e800fb35 	br      	0x8015294	// 8015294 <_vsnprintf+0x654>
          out(*(pstr++), buffer, idx++, maxlen);
 8015c2e:	6e6b      	mov      	r9, r10
 8015c30:	e5290000 	addi      	r9, r9, 1
 8015c34:	c4114822 	lsli      	r2, r17, 0
 8015c38:	6cdb      	mov      	r3, r6
 8015c3a:	6c5f      	mov      	r1, r7
 8015c3c:	7bd5      	jsr      	r5
        while ((*pstr != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 8015c3e:	d8090000 	ld.b      	r0, (r9, 0x0)
          out(*(pstr++), buffer, idx++, maxlen);
 8015c42:	e5710000 	addi      	r11, r17, 1
 8015c46:	c40b4831 	lsli      	r17, r11, 0
        while ((*pstr != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 8015c4a:	e920fff3 	bnez      	r0, 0x8015c30	// 8015c30 <_vsnprintf+0xff0>
          out(*(pstr++), buffer, idx++, maxlen);
 8015c4e:	c40b4831 	lsli      	r17, r11, 0
 8015c52:	e800fa04 	br      	0x801505a	// 801505a <_vsnprintf+0x41a>
            m = (bit % 100) / 10;
 8015c56:	c6e38423 	mult      	r3, r3, r23
 8015c5a:	c4730083 	subu      	r3, r19, r3
 8015c5e:	c40354f3 	zext      	r19, r3, 7, 0
 8015c62:	c6938034 	divu      	r20, r19, r20
            if (m)
 8015c66:	e914f96a 	bez      	r20, 0x8014f3a	// 8014f3a <_vsnprintf+0x2fa>
                outtxt[j++] = '0' + m;
 8015c6a:	5962      	addi      	r3, r1, 1
 8015c6c:	e694002f 	addi      	r20, r20, 48
 8015c70:	d42a0034 	str.b      	r20, (r10, r1 << 0)
 8015c74:	744c      	zextb      	r1, r3
 8015c76:	e800f962 	br      	0x8014f3a	// 8014f3a <_vsnprintf+0x2fa>
            m = (bit % 100) / 10;
 8015c7a:	c6e38423 	mult      	r3, r3, r23
 8015c7e:	596d      	subu      	r3, r1, r3
 8015c80:	744c      	zextb      	r1, r3
 8015c82:	c6818034 	divu      	r20, r1, r20
            if (m)
 8015c86:	e914f927 	bez      	r20, 0x8014ed4	// 8014ed4 <_vsnprintf+0x294>
                outtxt[j++] = '0' + m;
 8015c8a:	2000      	addi      	r0, 1
 8015c8c:	7400      	zextb      	r0, r0
 8015c8e:	e694002f 	addi      	r20, r20, 48
 8015c92:	d66a0034 	str.b      	r20, (r10, r19 << 0)
 8015c96:	c4004833 	lsli      	r19, r0, 0
 8015c9a:	e800f91d 	br      	0x8014ed4	// 8014ed4 <_vsnprintf+0x294>
        while ((*pstr != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
 8015c9e:	d80a0000 	ld.b      	r0, (r10, 0x0)
 8015ca2:	e920f9c1 	bnez      	r0, 0x8015024	// 8015024 <_vsnprintf+0x3e4>
 8015ca6:	e800f9dd 	br      	0x8015060	// 8015060 <_vsnprintf+0x420>
            m = (bit % 100) / 10;
 8015caa:	c6d38433 	mult      	r19, r19, r22
 8015cae:	c6620082 	subu      	r2, r2, r19
 8015cb2:	7488      	zextb      	r2, r2
 8015cb4:	c4028020 	divu      	r0, r2, r0
            if (m)
 8015cb8:	e900f973 	bez      	r0, 0x8014f9e	// 8014f9e <_vsnprintf+0x35e>
                outtxt[j++] = '0' + m;
 8015cbc:	5b22      	addi      	r1, r3, 1
 8015cbe:	202f      	addi      	r0, 48
 8015cc0:	d46a0020 	str.b      	r0, (r10, r3 << 0)
 8015cc4:	74c4      	zextb      	r3, r1
 8015cc6:	e800f96c 	br      	0x8014f9e	// 8014f9e <_vsnprintf+0x35e>
        if ((*format != 'i') && (*format != 'd')) {
 8015cca:	eb400064 	cmpnei      	r0, 100
          flags &= ~FLAGS_HASH;   // no hash for dec format
 8015cce:	c4034832 	lsli      	r18, r3, 0
          base = 10U;
 8015cd2:	ea13000a 	movi      	r19, 10
        if ((*format != 'i') && (*format != 'd')) {
 8015cd6:	0ba2      	bt      	0x8015c1a	// 8015c1a <_vsnprintf+0xfda>
        if (flags & FLAGS_PRECISION) {
 8015cd8:	e6432400 	andi      	r18, r3, 1024
 8015cdc:	e932fadc 	bnez      	r18, 0x8015294	// 8015294 <_vsnprintf+0x654>
          if (flags & FLAGS_LONG_LONG) {
 8015ce0:	9867      	ld.w      	r3, (r14, 0x1c)
 8015ce2:	e4032200 	andi      	r0, r3, 512
 8015ce6:	e92000f1 	bnez      	r0, 0x8015ec8	// 8015ec8 <_vsnprintf+0x1288>
          else if (flags & FLAGS_LONG) {
 8015cea:	e4232100 	andi      	r1, r3, 256
 8015cee:	e92101c5 	bnez      	r1, 0x8016078	// 8016078 <_vsnprintf+0x1438>
            const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va, int) : va_arg(va, int);
 8015cf2:	e4632040 	andi      	r3, r3, 64
 8015cf6:	e9230204 	bnez      	r3, 0x80160fe	// 80160fe <_vsnprintf+0x14be>
 8015cfa:	9867      	ld.w      	r3, (r14, 0x1c)
 8015cfc:	e4632080 	andi      	r3, r3, 128
 8015d00:	e9230189 	bnez      	r3, 0x8016012	// 8016012 <_vsnprintf+0x13d2>
 8015d04:	d84b2000 	ld.w      	r2, (r11, 0x0)
 8015d08:	c7e24855 	lsri      	r21, r2, 31
 8015d0c:	e56b0003 	addi      	r11, r11, 4
            idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned int)(value > 0 ? value : 0 - value), value < 0, base, precision, width, flags);
 8015d10:	c4020203 	abs      	r3, r2
  if (!value) {
 8015d14:	e922000a 	bnez      	r2, 0x8015d28	// 8015d28 <_vsnprintf+0x10e8>
    flags &= ~FLAGS_HASH;
 8015d18:	9807      	ld.w      	r0, (r14, 0x1c)
 8015d1a:	c4802822 	bclri      	r2, r0, 4
  if (!(flags & FLAGS_PRECISION) || value) {
 8015d1e:	e4002400 	andi      	r0, r0, 1024
    flags &= ~FLAGS_HASH;
 8015d22:	b847      	st.w      	r2, (r14, 0x1c)
  if (!(flags & FLAGS_PRECISION) || value) {
 8015d24:	e92001a0 	bnez      	r0, 0x8016064	// 8016064 <_vsnprintf+0x1424>
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 8015d28:	9847      	ld.w      	r2, (r14, 0x1c)
 8015d2a:	e4422020 	andi      	r2, r2, 32
 8015d2e:	3a40      	cmpnei      	r2, 0
 8015d30:	ea140041 	movi      	r20, 65
 8015d34:	3261      	movi      	r2, 97
 8015d36:	c6820c20 	incf      	r20, r2, 0
 8015d3a:	c40a4832 	lsli      	r18, r10, 0
 8015d3e:	e6941009 	subi      	r20, r20, 10
 8015d42:	040d      	br      	0x8015d5c	// 8015d5c <_vsnprintf+0x111c>
 8015d44:	232f      	addi      	r3, 48
 8015d46:	74cc      	zextb      	r3, r3
 8015d48:	dc720000 	st.b      	r3, (r18, 0x0)
      value /= base;
 8015d4c:	6cc3      	mov      	r3, r0
    } while (value && (len < PRINTF_NTOA_BUFFER_SIZE));
 8015d4e:	e900018b 	bez      	r0, 0x8016064	// 8016064 <_vsnprintf+0x1424>
 8015d52:	eb410020 	cmpnei      	r1, 32
 8015d56:	e6520000 	addi      	r18, r18, 1
 8015d5a:	0d85      	bf      	0x8016064	// 8016064 <_vsnprintf+0x1424>
      const char digit = (char)(value % base);
 8015d5c:	c6638020 	divu      	r0, r3, r19
 8015d60:	c6608422 	mult      	r2, r0, r19
 8015d64:	5b49      	subu      	r2, r3, r2
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 8015d66:	3a09      	cmphsi      	r2, 10
      const char digit = (char)(value % base);
 8015d68:	74c8      	zextb      	r3, r2
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 8015d6a:	2100      	addi      	r1, 1
 8015d6c:	0fec      	bf      	0x8015d44	// 8015d44 <_vsnprintf+0x1104>
 8015d6e:	c6830023 	addu      	r3, r3, r20
 8015d72:	74cc      	zextb      	r3, r3
 8015d74:	07ea      	br      	0x8015d48	// 8015d48 <_vsnprintf+0x1108>
 8015d76:	c4522823 	bclri      	r3, r18, 2
 8015d7a:	3b83      	bclri      	r3, 3
        if (flags & FLAGS_PRECISION) {
 8015d7c:	e6522400 	andi      	r18, r18, 1024
          flags &= ~(FLAGS_PLUS | FLAGS_SPACE);
 8015d80:	ec630020 	ori      	r3, r3, 32
 8015d84:	b867      	st.w      	r3, (r14, 0x1c)
          base = 16U;
 8015d86:	ea130010 	movi      	r19, 16
        if (flags & FLAGS_PRECISION) {
 8015d8a:	e932fa85 	bnez      	r18, 0x8015294	// 8015294 <_vsnprintf+0x654>
 8015d8e:	e800fa8d 	br      	0x80152a8	// 80152a8 <_vsnprintf+0x668>
        if (*format == 'F') flags |= FLAGS_UPPERCASE;
 8015d92:	ee520020 	ori      	r18, r18, 32
 8015d96:	e800fd5f 	br      	0x8015854	// 8015854 <_vsnprintf+0xc14>
          base = 16U;
 8015d9a:	ea130010 	movi      	r19, 16
 8015d9e:	073e      	br      	0x8015c1a	// 8015c1a <_vsnprintf+0xfda>
                outtxt[j++] = '0' + h;
 8015da0:	c4154823 	lsli      	r3, r21, 0
 8015da4:	078c      	br      	0x8015cbc	// 8015cbc <_vsnprintf+0x107c>
 8015da6:	c4154821 	lsli      	r1, r21, 0
 8015daa:	0760      	br      	0x8015c6a	// 8015c6a <_vsnprintf+0x102a>
 8015dac:	c4004833 	lsli      	r19, r0, 0
 8015db0:	076d      	br      	0x8015c8a	// 8015c8a <_vsnprintf+0x104a>
        precision = prec > 0 ? (unsigned int)prec : 0U;
 8015db2:	d92b2000 	ld.w      	r9, (r11, 0x0)
 8015db6:	3300      	movi      	r3, 0
 8015db8:	d8100002 	ld.b      	r0, (r16, 0x2)
 8015dbc:	f869cca9 	max.s32      	r9, r9, r3
        const int prec = (int)va_arg(va, int);
 8015dc0:	e56b0003 	addi      	r11, r11, 4
        format++;
 8015dc4:	e6100001 	addi      	r16, r16, 2
 8015dc8:	e800f7a5 	br      	0x8014d12	// 8014d12 <_vsnprintf+0xd2>
        width = (unsigned int)-w;
 8015dcc:	3100      	movi      	r1, 0
        flags |= FLAGS_LEFT;    // reverse padding
 8015dce:	ee520002 	ori      	r18, r18, 2
        width = (unsigned int)-w;
 8015dd2:	5991      	subu      	r4, r1, r4
 8015dd4:	e800fdf6 	br      	0x80159c0	// 80159c0 <_vsnprintf+0xd80>
            idx = _ntoa_long_long(out, buffer, idx, maxlen, va_arg(va, unsigned long long), false, base, precision, width, flags);
 8015dd8:	da4b2000 	ld.w      	r18, (r11, 0x0)
 8015ddc:	da8b2001 	ld.w      	r20, (r11, 0x4)
 8015de0:	e46b0007 	addi      	r3, r11, 8
  if (!value) {
 8015de4:	c692242b 	or      	r11, r18, r20
            idx = _ntoa_long_long(out, buffer, idx, maxlen, va_arg(va, unsigned long long), false, base, precision, width, flags);
 8015de8:	b86d      	st.w      	r3, (r14, 0x34)
  if (!value) {
 8015dea:	e90b004d 	bez      	r11, 0x8015e84	// 8015e84 <_vsnprintf+0x1244>
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 8015dee:	9867      	ld.w      	r3, (r14, 0x1c)
 8015df0:	e4632020 	andi      	r3, r3, 32
 8015df4:	3b40      	cmpnei      	r3, 0
 8015df6:	3261      	movi      	r2, 97
 8015df8:	3341      	movi      	r3, 65
 8015dfa:	c4620c20 	incf      	r3, r2, 0
 8015dfe:	2b09      	subi      	r3, 10
 8015e00:	dd4e2008 	st.w      	r10, (r14, 0x20)
 8015e04:	ea0b0000 	movi      	r11, 0
 8015e08:	b86c      	st.w      	r3, (r14, 0x30)
 8015e0a:	041f      	br      	0x8015e48	// 8015e48 <_vsnprintf+0x1208>
 8015e0c:	232f      	addi      	r3, 48
 8015e0e:	74cc      	zextb      	r3, r3
 8015e10:	9848      	ld.w      	r2, (r14, 0x20)
      value /= base;
 8015e12:	c4124820 	lsli      	r0, r18, 0
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 8015e16:	a260      	st.b      	r3, (r2, 0x0)
      value /= base;
 8015e18:	c4144821 	lsli      	r1, r20, 0
 8015e1c:	c4134822 	lsli      	r2, r19, 0
 8015e20:	3300      	movi      	r3, 0
 8015e22:	de6e2009 	st.w      	r19, (r14, 0x24)
 8015e26:	e3ffd3f7 	bsr      	0x8010614	// 8010614 <__udivdi3>
 8015e2a:	c4014834 	lsli      	r20, r1, 0
    } while (value && (len < PRINTF_NTOA_BUFFER_SIZE));
 8015e2e:	6c40      	or      	r1, r0
      value /= base;
 8015e30:	c4004832 	lsli      	r18, r0, 0
    } while (value && (len < PRINTF_NTOA_BUFFER_SIZE));
 8015e34:	da6e2009 	ld.w      	r19, (r14, 0x24)
 8015e38:	e901002e 	bez      	r1, 0x8015e94	// 8015e94 <_vsnprintf+0x1254>
 8015e3c:	9868      	ld.w      	r3, (r14, 0x20)
 8015e3e:	eb4b0020 	cmpnei      	r11, 32
 8015e42:	2300      	addi      	r3, 1
 8015e44:	b868      	st.w      	r3, (r14, 0x20)
 8015e46:	0c27      	bf      	0x8015e94	// 8015e94 <_vsnprintf+0x1254>
      const char digit = (char)(value % base);
 8015e48:	c4134822 	lsli      	r2, r19, 0
 8015e4c:	3300      	movi      	r3, 0
 8015e4e:	c4124820 	lsli      	r0, r18, 0
 8015e52:	c4144821 	lsli      	r1, r20, 0
 8015e56:	de6e200b 	st.w      	r19, (r14, 0x2c)
 8015e5a:	de4e200a 	st.w      	r18, (r14, 0x28)
 8015e5e:	de8e2009 	st.w      	r20, (r14, 0x24)
 8015e62:	e3ffd573 	bsr      	0x8010948	// 8010948 <__umoddi3>
 8015e66:	74c0      	zextb      	r3, r0
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 8015e68:	3b09      	cmphsi      	r3, 10
 8015e6a:	e56b0000 	addi      	r11, r11, 1
 8015e6e:	da8e2009 	ld.w      	r20, (r14, 0x24)
 8015e72:	da4e200a 	ld.w      	r18, (r14, 0x28)
 8015e76:	da6e200b 	ld.w      	r19, (r14, 0x2c)
 8015e7a:	0fc9      	bf      	0x8015e0c	// 8015e0c <_vsnprintf+0x11cc>
 8015e7c:	984c      	ld.w      	r2, (r14, 0x30)
 8015e7e:	60c8      	addu      	r3, r2
 8015e80:	74cc      	zextb      	r3, r3
 8015e82:	07c7      	br      	0x8015e10	// 8015e10 <_vsnprintf+0x11d0>
    flags &= ~FLAGS_HASH;
 8015e84:	9847      	ld.w      	r2, (r14, 0x1c)
 8015e86:	c4822823 	bclri      	r3, r2, 4
  if (!(flags & FLAGS_PRECISION) || value) {
 8015e8a:	e4422400 	andi      	r2, r2, 1024
    flags &= ~FLAGS_HASH;
 8015e8e:	b867      	st.w      	r3, (r14, 0x1c)
  if (!(flags & FLAGS_PRECISION) || value) {
 8015e90:	e902ffaf 	bez      	r2, 0x8015dee	// 8015dee <_vsnprintf+0x11ae>
  return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags);
 8015e94:	9867      	ld.w      	r3, (r14, 0x1c)
 8015e96:	b866      	st.w      	r3, (r14, 0x18)
 8015e98:	b885      	st.w      	r4, (r14, 0x14)
 8015e9a:	dd2e2004 	st.w      	r9, (r14, 0x10)
 8015e9e:	de6e2003 	st.w      	r19, (r14, 0xc)
 8015ea2:	3300      	movi      	r3, 0
 8015ea4:	b862      	st.w      	r3, (r14, 0x8)
 8015ea6:	dd6e2001 	st.w      	r11, (r14, 0x4)
 8015eaa:	c4114822 	lsli      	r2, r17, 0
 8015eae:	dd4e2000 	st.w      	r10, (r14, 0x0)
 8015eb2:	6cdb      	mov      	r3, r6
 8015eb4:	6c5f      	mov      	r1, r7
 8015eb6:	6c17      	mov      	r0, r5
 8015eb8:	e3ffed6a 	bsr      	0x801398c	// 801398c <_ntoa_format>
 8015ebc:	c4004831 	lsli      	r17, r0, 0
            idx = _ntoa_long_long(out, buffer, idx, maxlen, va_arg(va, unsigned long long), false, base, precision, width, flags);
 8015ec0:	d96e200d 	ld.w      	r11, (r14, 0x34)
 8015ec4:	e800f9c7 	br      	0x8015252	// 8015252 <_vsnprintf+0x612>
            const long long value = va_arg(va, long long);
 8015ec8:	e46b0007 	addi      	r3, r11, 8
 8015ecc:	d82b2000 	ld.w      	r1, (r11, 0x0)
 8015ed0:	d96b2001 	ld.w      	r11, (r11, 0x4)
 8015ed4:	b86d      	st.w      	r3, (r14, 0x34)
            idx = _ntoa_long_long(out, buffer, idx, maxlen, (unsigned long long)(value > 0 ? value : 0 - value), value < 0, base, precision, width, flags);
 8015ed6:	6c87      	mov      	r2, r1
 8015ed8:	6cef      	mov      	r3, r11
 8015eda:	e98b0134 	blz      	r11, 0x8016142	// 8016142 <_vsnprintf+0x1502>
 8015ede:	c4034834 	lsli      	r20, r3, 0
 8015ee2:	c7eb4843 	lsri      	r3, r11, 31
  if (!value) {
 8015ee6:	6ec4      	or      	r11, r1
            idx = _ntoa_long_long(out, buffer, idx, maxlen, (unsigned long long)(value > 0 ? value : 0 - value), value < 0, base, precision, width, flags);
 8015ee8:	c4024832 	lsli      	r18, r2, 0
 8015eec:	b86e      	st.w      	r3, (r14, 0x38)
  if (!value) {
 8015eee:	e90b004d 	bez      	r11, 0x8015f88	// 8015f88 <_vsnprintf+0x1348>
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 8015ef2:	9867      	ld.w      	r3, (r14, 0x1c)
 8015ef4:	e4632020 	andi      	r3, r3, 32
 8015ef8:	3b40      	cmpnei      	r3, 0
 8015efa:	3261      	movi      	r2, 97
 8015efc:	3341      	movi      	r3, 65
 8015efe:	c4620c20 	incf      	r3, r2, 0
 8015f02:	2b09      	subi      	r3, 10
 8015f04:	dd4e2008 	st.w      	r10, (r14, 0x20)
 8015f08:	ea0b0000 	movi      	r11, 0
 8015f0c:	b86c      	st.w      	r3, (r14, 0x30)
 8015f0e:	041f      	br      	0x8015f4c	// 8015f4c <_vsnprintf+0x130c>
 8015f10:	232f      	addi      	r3, 48
 8015f12:	74cc      	zextb      	r3, r3
 8015f14:	9848      	ld.w      	r2, (r14, 0x20)
      value /= base;
 8015f16:	c4124820 	lsli      	r0, r18, 0
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 8015f1a:	a260      	st.b      	r3, (r2, 0x0)
      value /= base;
 8015f1c:	c4144821 	lsli      	r1, r20, 0
 8015f20:	c4134822 	lsli      	r2, r19, 0
 8015f24:	3300      	movi      	r3, 0
 8015f26:	de6e2009 	st.w      	r19, (r14, 0x24)
 8015f2a:	e3ffd375 	bsr      	0x8010614	// 8010614 <__udivdi3>
 8015f2e:	c4014834 	lsli      	r20, r1, 0
    } while (value && (len < PRINTF_NTOA_BUFFER_SIZE));
 8015f32:	6c40      	or      	r1, r0
      value /= base;
 8015f34:	c4004832 	lsli      	r18, r0, 0
    } while (value && (len < PRINTF_NTOA_BUFFER_SIZE));
 8015f38:	da6e2009 	ld.w      	r19, (r14, 0x24)
 8015f3c:	e901002e 	bez      	r1, 0x8015f98	// 8015f98 <_vsnprintf+0x1358>
 8015f40:	9868      	ld.w      	r3, (r14, 0x20)
 8015f42:	eb4b0020 	cmpnei      	r11, 32
 8015f46:	2300      	addi      	r3, 1
 8015f48:	b868      	st.w      	r3, (r14, 0x20)
 8015f4a:	0c27      	bf      	0x8015f98	// 8015f98 <_vsnprintf+0x1358>
      const char digit = (char)(value % base);
 8015f4c:	c4134822 	lsli      	r2, r19, 0
 8015f50:	3300      	movi      	r3, 0
 8015f52:	c4124820 	lsli      	r0, r18, 0
 8015f56:	c4144821 	lsli      	r1, r20, 0
 8015f5a:	de6e200b 	st.w      	r19, (r14, 0x2c)
 8015f5e:	de4e200a 	st.w      	r18, (r14, 0x28)
 8015f62:	de8e2009 	st.w      	r20, (r14, 0x24)
 8015f66:	e3ffd4f1 	bsr      	0x8010948	// 8010948 <__umoddi3>
 8015f6a:	74c0      	zextb      	r3, r0
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 8015f6c:	3b09      	cmphsi      	r3, 10
 8015f6e:	e56b0000 	addi      	r11, r11, 1
 8015f72:	da8e2009 	ld.w      	r20, (r14, 0x24)
 8015f76:	da4e200a 	ld.w      	r18, (r14, 0x28)
 8015f7a:	da6e200b 	ld.w      	r19, (r14, 0x2c)
 8015f7e:	0fc9      	bf      	0x8015f10	// 8015f10 <_vsnprintf+0x12d0>
 8015f80:	984c      	ld.w      	r2, (r14, 0x30)
 8015f82:	60c8      	addu      	r3, r2
 8015f84:	74cc      	zextb      	r3, r3
 8015f86:	07c7      	br      	0x8015f14	// 8015f14 <_vsnprintf+0x12d4>
    flags &= ~FLAGS_HASH;
 8015f88:	9847      	ld.w      	r2, (r14, 0x1c)
 8015f8a:	c4822823 	bclri      	r3, r2, 4
  if (!(flags & FLAGS_PRECISION) || value) {
 8015f8e:	e4422400 	andi      	r2, r2, 1024
    flags &= ~FLAGS_HASH;
 8015f92:	b867      	st.w      	r3, (r14, 0x1c)
  if (!(flags & FLAGS_PRECISION) || value) {
 8015f94:	e902ffaf 	bez      	r2, 0x8015ef2	// 8015ef2 <_vsnprintf+0x12b2>
  return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags);
 8015f98:	9867      	ld.w      	r3, (r14, 0x1c)
 8015f9a:	b866      	st.w      	r3, (r14, 0x18)
 8015f9c:	b885      	st.w      	r4, (r14, 0x14)
 8015f9e:	dd2e2004 	st.w      	r9, (r14, 0x10)
 8015fa2:	de6e2003 	st.w      	r19, (r14, 0xc)
 8015fa6:	986e      	ld.w      	r3, (r14, 0x38)
 8015fa8:	077e      	br      	0x8015ea4	// 8015ea4 <_vsnprintf+0x1264>
          base =  2U;
 8015faa:	ea130002 	movi      	r19, 2
 8015fae:	0636      	br      	0x8015c1a	// 8015c1a <_vsnprintf+0xfda>
            idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags);
 8015fb0:	d86b2000 	ld.w      	r3, (r11, 0x0)
 8015fb4:	e64b0003 	addi      	r18, r11, 4
  if (!value) {
 8015fb8:	e9030034 	bez      	r3, 0x8016020	// 8016020 <_vsnprintf+0x13e0>
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 8015fbc:	9847      	ld.w      	r2, (r14, 0x1c)
 8015fbe:	e4422020 	andi      	r2, r2, 32
 8015fc2:	3a40      	cmpnei      	r2, 0
 8015fc4:	ea150041 	movi      	r21, 65
 8015fc8:	3261      	movi      	r2, 97
 8015fca:	c6a20c20 	incf      	r21, r2, 0
 8015fce:	6c6b      	mov      	r1, r10
 8015fd0:	e6b51009 	subi      	r21, r21, 10
 8015fd4:	040c      	br      	0x8015fec	// 8015fec <_vsnprintf+0x13ac>
 8015fd6:	232f      	addi      	r3, 48
 8015fd8:	74cc      	zextb      	r3, r3
 8015fda:	a160      	st.b      	r3, (r1, 0x0)
      value /= base;
 8015fdc:	c4144823 	lsli      	r3, r20, 0
    } while (value && (len < PRINTF_NTOA_BUFFER_SIZE));
 8015fe0:	e9140028 	bez      	r20, 0x8016030	// 8016030 <_vsnprintf+0x13f0>
 8015fe4:	eb400020 	cmpnei      	r0, 32
 8015fe8:	2100      	addi      	r1, 1
 8015fea:	0c23      	bf      	0x8016030	// 8016030 <_vsnprintf+0x13f0>
      const char digit = (char)(value % base);
 8015fec:	c6638034 	divu      	r20, r3, r19
 8015ff0:	c6748422 	mult      	r2, r20, r19
 8015ff4:	5b49      	subu      	r2, r3, r2
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 8015ff6:	3a09      	cmphsi      	r2, 10
      const char digit = (char)(value % base);
 8015ff8:	74c8      	zextb      	r3, r2
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 8015ffa:	2000      	addi      	r0, 1
 8015ffc:	0fed      	bf      	0x8015fd6	// 8015fd6 <_vsnprintf+0x1396>
 8015ffe:	c6a30023 	addu      	r3, r3, r21
 8016002:	74cc      	zextb      	r3, r3
 8016004:	07eb      	br      	0x8015fda	// 8015fda <_vsnprintf+0x139a>
 8016006:	d86b1000 	ld.h      	r3, (r11, 0x0)
            const unsigned int value = (flags & FLAGS_CHAR) ? (unsigned char)va_arg(va, unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int) : va_arg(va, unsigned int);
 801600a:	e56b0003 	addi      	r11, r11, 4
 801600e:	e800f963 	br      	0x80152d4	// 80152d4 <_vsnprintf+0x694>
            const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va, int) : va_arg(va, int);
 8016012:	d84b5000 	ld.hs      	r2, (r11, 0x0)
 8016016:	c7e24855 	lsri      	r21, r2, 31
 801601a:	e56b0003 	addi      	r11, r11, 4
 801601e:	0679      	br      	0x8015d10	// 8015d10 <_vsnprintf+0x10d0>
    flags &= ~FLAGS_HASH;
 8016020:	9827      	ld.w      	r1, (r14, 0x1c)
 8016022:	c4812822 	bclri      	r2, r1, 4
  if (!(flags & FLAGS_PRECISION) || value) {
 8016026:	e4212400 	andi      	r1, r1, 1024
    flags &= ~FLAGS_HASH;
 801602a:	b847      	st.w      	r2, (r14, 0x1c)
  if (!(flags & FLAGS_PRECISION) || value) {
 801602c:	e901ffc8 	bez      	r1, 0x8015fbc	// 8015fbc <_vsnprintf+0x137c>
  return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags);
 8016030:	9867      	ld.w      	r3, (r14, 0x1c)
 8016032:	b866      	st.w      	r3, (r14, 0x18)
 8016034:	3300      	movi      	r3, 0
 8016036:	c412482b 	lsli      	r11, r18, 0
 801603a:	b885      	st.w      	r4, (r14, 0x14)
 801603c:	dd2e2004 	st.w      	r9, (r14, 0x10)
 8016040:	de6e2003 	st.w      	r19, (r14, 0xc)
 8016044:	b862      	st.w      	r3, (r14, 0x8)
 8016046:	b801      	st.w      	r0, (r14, 0x4)
 8016048:	e800f8d7 	br      	0x80151f6	// 80151f6 <_vsnprintf+0x5b6>
 801604c:	9867      	ld.w      	r3, (r14, 0x1c)
 801604e:	b866      	st.w      	r3, (r14, 0x18)
 8016050:	3300      	movi      	r3, 0
 8016052:	b885      	st.w      	r4, (r14, 0x14)
 8016054:	dd2e2004 	st.w      	r9, (r14, 0x10)
 8016058:	de6e2003 	st.w      	r19, (r14, 0xc)
 801605c:	b862      	st.w      	r3, (r14, 0x8)
 801605e:	b821      	st.w      	r1, (r14, 0x4)
 8016060:	e800f8cb 	br      	0x80151f6	// 80151f6 <_vsnprintf+0x5b6>
 8016064:	9867      	ld.w      	r3, (r14, 0x1c)
 8016066:	b866      	st.w      	r3, (r14, 0x18)
 8016068:	b885      	st.w      	r4, (r14, 0x14)
 801606a:	dd2e2004 	st.w      	r9, (r14, 0x10)
 801606e:	de6e2003 	st.w      	r19, (r14, 0xc)
 8016072:	deae2002 	st.w      	r21, (r14, 0x8)
 8016076:	07f4      	br      	0x801605e	// 801605e <_vsnprintf+0x141e>
            const long value = va_arg(va, long);
 8016078:	d84b2000 	ld.w      	r2, (r11, 0x0)
 801607c:	e64b0003 	addi      	r18, r11, 4
            idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned long)(value > 0 ? value : 0 - value), value < 0, base, precision, width, flags);
 8016080:	c4020203 	abs      	r3, r2
 8016084:	c7e24856 	lsri      	r22, r2, 31
  if (!value) {
 8016088:	e922000a 	bnez      	r2, 0x801609c	// 801609c <_vsnprintf+0x145c>
    flags &= ~FLAGS_HASH;
 801608c:	9827      	ld.w      	r1, (r14, 0x1c)
 801608e:	c4812822 	bclri      	r2, r1, 4
  if (!(flags & FLAGS_PRECISION) || value) {
 8016092:	e4212400 	andi      	r1, r1, 1024
    flags &= ~FLAGS_HASH;
 8016096:	b847      	st.w      	r2, (r14, 0x1c)
  if (!(flags & FLAGS_PRECISION) || value) {
 8016098:	e9210027 	bnez      	r1, 0x80160e6	// 80160e6 <_vsnprintf+0x14a6>
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 801609c:	9847      	ld.w      	r2, (r14, 0x1c)
 801609e:	e4422020 	andi      	r2, r2, 32
 80160a2:	3a40      	cmpnei      	r2, 0
 80160a4:	ea150041 	movi      	r21, 65
 80160a8:	3261      	movi      	r2, 97
 80160aa:	c6a20c20 	incf      	r21, r2, 0
 80160ae:	6c6b      	mov      	r1, r10
 80160b0:	e6b51009 	subi      	r21, r21, 10
 80160b4:	040c      	br      	0x80160cc	// 80160cc <_vsnprintf+0x148c>
 80160b6:	232f      	addi      	r3, 48
 80160b8:	74cc      	zextb      	r3, r3
 80160ba:	a160      	st.b      	r3, (r1, 0x0)
      value /= base;
 80160bc:	c4144823 	lsli      	r3, r20, 0
    } while (value && (len < PRINTF_NTOA_BUFFER_SIZE));
 80160c0:	e9140013 	bez      	r20, 0x80160e6	// 80160e6 <_vsnprintf+0x14a6>
 80160c4:	eb400020 	cmpnei      	r0, 32
 80160c8:	2100      	addi      	r1, 1
 80160ca:	0c0e      	bf      	0x80160e6	// 80160e6 <_vsnprintf+0x14a6>
      const char digit = (char)(value % base);
 80160cc:	c6638034 	divu      	r20, r3, r19
 80160d0:	c6748422 	mult      	r2, r20, r19
 80160d4:	5b49      	subu      	r2, r3, r2
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 80160d6:	3a09      	cmphsi      	r2, 10
      const char digit = (char)(value % base);
 80160d8:	74c8      	zextb      	r3, r2
      buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
 80160da:	2000      	addi      	r0, 1
 80160dc:	0fed      	bf      	0x80160b6	// 80160b6 <_vsnprintf+0x1476>
 80160de:	c6a30023 	addu      	r3, r3, r21
 80160e2:	74cc      	zextb      	r3, r3
 80160e4:	07eb      	br      	0x80160ba	// 80160ba <_vsnprintf+0x147a>
  return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags);
 80160e6:	9867      	ld.w      	r3, (r14, 0x1c)
 80160e8:	c412482b 	lsli      	r11, r18, 0
 80160ec:	b866      	st.w      	r3, (r14, 0x18)
 80160ee:	b885      	st.w      	r4, (r14, 0x14)
 80160f0:	dd2e2004 	st.w      	r9, (r14, 0x10)
 80160f4:	de6e2003 	st.w      	r19, (r14, 0xc)
 80160f8:	dece2002 	st.w      	r22, (r14, 0x8)
 80160fc:	07a5      	br      	0x8016046	// 8016046 <_vsnprintf+0x1406>
 80160fe:	d84b0000 	ld.b      	r2, (r11, 0x0)
 8016102:	c4014835 	lsli      	r21, r1, 0
            const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va, int) : va_arg(va, int);
 8016106:	e56b0003 	addi      	r11, r11, 4
 801610a:	0603      	br      	0x8015d10	// 8015d10 <_vsnprintf+0x10d0>
 801610c:	d86b0000 	ld.b      	r3, (r11, 0x0)
            const unsigned int value = (flags & FLAGS_CHAR) ? (unsigned char)va_arg(va, unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int) : va_arg(va, unsigned int);
 8016110:	e56b0003 	addi      	r11, r11, 4
 8016114:	e800f8e0 	br      	0x80152d4	// 80152d4 <_vsnprintf+0x694>
          while (l++ < width) {
 8016118:	b869      	st.w      	r3, (r14, 0x24)
 801611a:	e800f781 	br      	0x801501c	// 801501c <_vsnprintf+0x3dc>
          while (l++ < width) {
 801611e:	b868      	st.w      	r3, (r14, 0x20)
 8016120:	e800fb5c 	br      	0x80157d8	// 80157d8 <_vsnprintf+0xb98>
          while (l++ < width) {
 8016124:	b869      	st.w      	r3, (r14, 0x24)
 8016126:	e800f802 	br      	0x801512a	// 801512a <_vsnprintf+0x4ea>
        out((char)va_arg(va, int), buffer, idx++, maxlen);
 801612a:	6ee7      	mov      	r11, r9
 801612c:	c4124831 	lsli      	r17, r18, 0
 8016130:	e800f891 	br      	0x8015252	// 8015252 <_vsnprintf+0x612>
          while (l++ < width) {
 8016134:	c4114829 	lsli      	r9, r17, 0
 8016138:	e800f882 	br      	0x801523c	// 801523c <_vsnprintf+0x5fc>
          while (l++ < width) {
 801613c:	b868      	st.w      	r3, (r14, 0x20)
 801613e:	e800fa66 	br      	0x801560a	// 801560a <_vsnprintf+0x9ca>
            idx = _ntoa_long_long(out, buffer, idx, maxlen, (unsigned long long)(value > 0 ? value : 0 - value), value < 0, base, precision, width, flags);
 8016142:	ea140000 	movi      	r20, 0
 8016146:	ea150000 	movi      	r21, 0
 801614a:	f854c462 	sub.64      	r2, r20, r2
 801614e:	06c8      	br      	0x8015ede	// 8015ede <_vsnprintf+0x129e>

08016150 <fputc>:
    while((READ_REG(UART0->FIFOS) & 0x3F) >= 32);
 8016150:	1046      	lrw      	r2, 0x40010600	// 8016168 <fputc+0x18>
 8016152:	9267      	ld.w      	r3, (r2, 0x1c)
 8016154:	e463203f 	andi      	r3, r3, 63
 8016158:	3b1f      	cmphsi      	r3, 32
 801615a:	0bfc      	bt      	0x8016152	// 8016152 <fputc+0x2>
    WRITE_REG(UART0->TDW, (char)ch);
 801615c:	e40020ff 	andi      	r0, r0, 255
 8016160:	b208      	st.w      	r0, (r2, 0x20)
}
 8016162:	3000      	movi      	r0, 0
 8016164:	783c      	jmp      	r15
 8016166:	0000      	.short	0x0000
 8016168:	40010600 	.long	0x40010600

0801616c <wm_printf>:
  return _vsnprintf(_out_buffer, buffer, count, format, va);
}


int wm_printf(const char *fmt,...)
{
 801616c:	1424      	subi      	r14, r14, 16
 801616e:	b863      	st.w      	r3, (r14, 0xc)
 8016170:	b842      	st.w      	r2, (r14, 0x8)
 8016172:	b821      	st.w      	r1, (r14, 0x4)
 8016174:	b800      	st.w      	r0, (r14, 0x0)
 8016176:	14d0      	push      	r15
 8016178:	1421      	subi      	r14, r14, 4
 801617a:	9862      	ld.w      	r3, (r14, 0x8)
 801617c:	6c8f      	mov      	r2, r3
    va_list args;
    size_t length;

	va_start(args, fmt);
	length = _vsnprintf(_out_uart, (char*)fmt, (size_t) - 1, fmt, args);
 801617e:	1b03      	addi      	r3, r14, 12
 8016180:	b860      	st.w      	r3, (r14, 0x0)
 8016182:	6ccb      	mov      	r3, r2
 8016184:	3200      	movi      	r2, 0
 8016186:	2a00      	subi      	r2, 1
 8016188:	6c4f      	mov      	r1, r3
 801618a:	1005      	lrw      	r0, 0x8013974	// 801619c <wm_printf+0x30>
 801618c:	e3fff55a 	bsr      	0x8014c40	// 8014c40 <_vsnprintf>
	va_end(args);

	return length;
}
 8016190:	1401      	addi      	r14, r14, 4
 8016192:	d9ee2000 	ld.w      	r15, (r14, 0x0)
 8016196:	1405      	addi      	r14, r14, 20
 8016198:	783c      	jmp      	r15
 801619a:	0000      	.short	0x0000
 801619c:	08013974 	.long	0x08013974
